Giter Club home page Giter Club logo

azure-cloud-exams's Introduction

Azure Cloud Exams


This is a web application built with Next.js, TypeScript, CosmosDB, GraphQL and TailwindCSS. The application is a quiz that tests your knowledge of Azure fundamentals, specifically for the AZ-900 certification exam. The questions are stored in a Cosmos DB database and retrieved using GraphQL queries. The application is deployed on Microsoft Azure.

This project was created for learning purposes to help me understand Microsoft Azure and CosmosDB in preparation for the AZ-900 exam.

UPDATE: The project is now using this repo as a database, replacing Cosmos DB.

UPDATE2: The project has a new name to better fit it's purpose, now it has all azure exams from this collection



Contributors Issue PRs
Project license Stars

๐ŸŒŸ Features

  • Question sets scrapped from this repo.
  • Correct answer displayed for each question.
  • Practice mode & Exam mode.

๐ŸŒฑ Getting Started

Clone the repository:

git clone https://github.com/eduardconstantin/azure-cloud-exams.git

Install dependencies:

npm install

Enable Git hooks:

npm run prepare

Run the app:

npm run dev

Open your browser and navigate to http://localhost:3000.

๐Ÿ‘ฅ Contributing

I welcome feedback and contributions from other developers, which can help improve the quality of the code and the application overall.

In order to create an issue or a pull request with your changes, please read our contribution guidelines, and thank you for being involved!

There is also a Discussion tab

For a full list of all authors and contributors, see the contributors page.

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

azure-cloud-exams's People

Contributors

adripo avatar amnish04 avatar arturba avatar ashutosh-rath02 avatar bazi99 avatar dependabot[bot] avatar eduardconstantin avatar jsunpayco avatar masterhawk99 avatar milafreckled avatar newtonfernandis avatar nimrodfbc avatar raviikushh avatar rkosvk avatar sagarsingh-1 avatar sushma1031 avatar vlakshminarayanan avatar wisniom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

azure-cloud-exams's Issues

[Feature] Validate User Answers and Calculate Results

Is your feature request related to a problem? Please describe.
As a student preparing for the Azure Fundamentals certification, I place great importance on receiving accurate feedback on my exam performance. In the exam mode, after completing the questions within the allotted time, the system should validate the user's answers and calculate the points.

Describe the solution you'd like
Probably the best solution for this is to create a custom hook, but I am open to better suggestions.
The total points of all the questions should add up to 100 and it should take in consideration that there are also questions with multiple answers.

[Feature] Make UI responsive

Is your feature request related to a problem? Please describe.
Currently the UI is not responsive.

Describe the solution you'd like
Use tailwind CSS to make the UI responsive for small devices.

image

[Feature] Add prettier & husky to keep code style consistent

Is your feature request related to a problem? Please describe.
It would be nice to have formatter with well-defined rules and don't have to worry about what tools others use to format their code.

Describe the solution you'd like
Add prettier and optionally husky

[Feature] Page selection button component

Is your feature request related to a problem? Please describe.
Currently, the page selection buttons from the home page are hardcoded.

Describe the solution you'd like
A new page button component added to the library that uses Tailwind variants for customization.
image

Additional context
Class Variance Authority can be used to create the tailwind variants.
Check button component

[Feature] Exam Mode Quiz UI

Is your feature request related to a problem? Please describe.
As a student preparing for the Azure Fundamentals certification, I value a user-friendly and engaging interface when I enter exam mode. Currently the exam mode only has the intro screen, the next one is the quiz itself.

Describe the solution you'd like
To enhance the exam experience, we need to implement the UI for the exam mode that includes the following components:

  • Question Display: Each question should be presented clearly and legibly. The practice mode uses Next image, for exam mode let's keep it simple text that can't be selected.
  • Answer Selection: I should be able to select my answer choice by clicking the option bar. The selected choice should be visually indicated.
  • Timer: A timer displaying the remaining time in "mm:ss" format should be prominently visible throughout the exam in the top right corner. The timer should start automatically when the quiz appears and stop when the time limit is reached or the user has answered the final question.
  • Progress Indicator: An indicator showing the progress, such as "X of 50," should help keep track of the progress. It should be positioned in the top left corner and it should update dynamically as the user move through the questions.
  • Next Question Button: A clearly labeled "Next Question" button should be provided for the user to move to the next question and save the selected answer/s. The button should be disabled if no answer is selected.
  • Skip Question Button: A clearly labeled "Skip Question" button should be provided for the user to move to the next question without selecting any answer. The skipped questions should be visible at the end of the exam.

Additional context
The practice mode already has the quiz component made, which it's a good starting point.

image
You can find the link to figma file here.

[BUG] Text overflows

Describe the bug
Text overflows on certain window width.

To Reproduce
Steps to reproduce the behavior:
Just make your browser window smaller. Occurs between 938px and 639px.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser chrome, firefox
  • Version 114

[BUG] The text is overflowing

Describe the bug
The text is overflowing the boxes on large screens.

To Reproduce
Steps to reproduce the behavior:

  1. Go to home page
  2. Resize browser window horizontally to min. 2500px

Expected behavior
Text should stay in the same position.

Screenshots
image

Desktop (please complete the following information):

  • OS: [Windows]
  • Browser [chrome]
  • Version [latest]

[BUG] Navbar, UI and Questions card

I can make changes with the UI. we can upgrade navbar and the cards. Also the question on the practice mode is not clearly visible.
I can fix all that.

[Feature] Submitting Answer/Revealing answer

Is your feature request related to a problem? Please describe.
Currently there are only two button, for going to the next question and revealing the correct answer. But it would be better if the user can submit there answer and discover whether it is the correct one.

Describe the solution you'd like
Instead of having the reveal answer button, it would be better to have a Submit button, that will check whether the answer the user submitted is correct and display the correct answer.

[Feature] Exam mode completion UI

Is your feature request related to a problem? Please describe.
As a student preparing for the Azure Fundamentals certification, I value a user-friendly and engaging interface when I finish the exam mode. This is the last screen in the exam mode.

Describe the solution you'd like
To enhance the exam experience, the completion screen need to be implemented which includes the following components:

  • Exam status: A text that show if the exam has been passed or not. The color of the text should be green if the exam is passed and red if not.
  • Points: A text showing the number of points the user has made "X/100". Same as the exam status the points should be colored green if the exam has been passed or red if not.
  • Completion message: A text showing the user a congratulatory message and the amount of time it took to pass the exam. If the exam is failed it should tell the user the minimum amount of points needed to pass the exam.
  • Retake Exam Button: A clearly labeled "Retake exam" button should be provided for the user to let him retake the exam with new random questions.

Additional context

image
image

You can find the link to figma file here.

[BUG] Reveal answer remains selected

Describe the bug
In practice mode, if I press reveal answer button and I change the question number at the top of the page the option remains selected for all the questions.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Practice mode
  2. Click on Reveal Answer
  3. Change question number at the top of the page
  4. See error

Expected behavior
When the question changes no option should be selected or revealed

[BUG] Questions index should start from 1

Describe the bug
In Practice or Exam mode questions index starts from 0

To Reproduce
Steps to reproduce the behavior:

  1. Go to Practice or Exam mode
  2. In Practice you can see it starts from 0, in Exam after "Begin exam" is clicked, on the right side is "0/30"

Expected behavior
Questions index should start from 1, not 0

Screenshots
image
image

[Feature] Include images in questions

Currently, only text questions are displayed, but some questions (sporadically answers) contain images.
It'd be good to have them included as an enhancement.

[BUG] Error in console

Describe the bug
Error related to quiz form appears in console

To Reproduce
Steps to reproduce the behavior:

  1. Go to Practice Mode
  2. See error in console

Expected behavior
No error

Screenshots
image

[BUG] Back button appears for the first question

Describe the bug
In practice mode, when I click reveal answer for the first questions the back button appears.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Practice mode
  2. Click on Reveal Answer
  3. See bug

Expected behavior
The back button should appear from second question and above if the reveal answer button is pressed

Screenshots
image

[BUG] Skip Question button functionality

Describe the bug
In the exam mode the Skip Question button is not working properly

To Reproduce
Steps to reproduce the behavior:

  1. Click on Exam Mode
  2. Click on Begin Exam
  3. Click on Skip Question until no more questions left
  4. See error

Expected behavior
When the user clicks on the Skip Question button, the current question should be added to a queue of skipped questions.
The questions from the queue should be showed to the user after all the questions from the initial queue has been answered.
The exam should not end until the user has answered all the questions, including the ones in the queue, or the time limit has expired.

[BUG] Question answer selection

Describe the bug
Currently the exam mode has a bug. When I select the first answer and click next question the first answer remains selected also for the next question.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Exam Mode
  2. Click on Begin Exam
  3. Click on first answer
  4. Click on Next Question
  5. See error -> first answer remains selected

Expected behavior
After I press Next Question no answer should be selected.

Screenshots
First question with first answer selected by the user
image
Second question with the first answer selected by default
image

[BUG] Question text not readable enough

Describe the bug
The question font size is too small on desktop.

To Reproduce
Steps to reproduce the behavior:

  1. Open the the URL.
  2. See error

Expected behavior
The question font text should be big enough to be readable on desktop.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser Microsoft Edge
  • Version 111.0.1661.62

Additional context

[BUG] Update the answered question count when `Next` button is clicked.

Describe the bug
Currently, the answered question count updates whenever a user selects an option.

To Reproduce
Steps to reproduce the behavior:

  1. Click Begin Exam
  2. Select an option
  3. Notice the answered questions count updates.

Expected behavior
The selection should happen only when the user clicks on the Next button.

[BUG] On the result screen, should be time taken to complete

Describe the bug
When the user ends a test in Exam Mode, the congratulation text on the end screen displays the remaining time instead of the time taken to complete the test.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Exam Mode'
  2. Click on 'Begin'
  3. Answer questions
  4. See end screen

Expected behavior
On the end screen, the congratulatory text should include the time taken to complete test.

Screenshots
image

[Feature] Jump to question # - and/or randomize

If I close the browser and reopen it, I have to restart from question #1. If the questions were randomized it would not matter but having to getting back to a question, may take a few hundred clicks.

[Feature] Button Component

Is your feature request related to a problem? Please describe.
Currently, the buttons in the library are hardcoded and lack flexibility.

Describe the solution you'd like
A new button component added to the library that uses Tailwind variants for customization. This would allow for more flexibility and ease of use when implementing buttons in projects.

Additional context
Class Variance Authority can be used to create the tailwind variants.

[Feature] Add page title tag

Is your feature request related to a problem? Please describe.
As the project grows and contains more pages, it becomes more important to show each page corresponding title in the browser tab. This would improve the SEO, user experience, and consistency of the project.

Describe the solution you'd like
I think adding the Head component with the title tag to each page is the solution to go.

[Feature] Practice exam info page

Is your feature request related to a problem? Please describe.
Moving forward with the exam mode, it is necessary to have an info screen before starting the exam.

Describe the solution you'd like
In the exam mode page add the following info screen, without any functionality.
image
Link to figma file

[BUG] Selection checkmark

Describe the bug
When on mobile the selection checkmark is rendered over the text.

To Reproduce
Steps to reproduce the behavior:

  1. Go to mobile view
  2. Click on one of the answers
  3. See error

Expected behavior
The checkmark should be rendered on the left side of the text, like it is on desktop.

Screenshots
image

[Feature] Exam questions

Is your feature request related to a problem? Please describe.
The current application lacks a reliable way to fetch a batch of random questions from the source database. This poses a challenge for implementing the exam mode, where a diverse set of questions is needed to ensure fairness and variety in each exam session.

Describe the solution you'd like
I propose the addition of a new GraphQL query that can retrieve 50 random questions from the source database. Implementing this feature would enhance the user experience by ensuring that each exam is unique and engaging.

Describe alternatives you've considered
Another approach might involve creating a separate server-side function to handle the random question selection, but integrating this functionality into the GraphQL layer would provide a more seamless and consistent experience.

[Feature] Add questions counter

Is your feature request related to a problem? Please describe.
Currently the application has nothing to show how many questions the user has answered.
A counter could be useful.

Describe the solution you'd like
Add a counter inside the form, above the question. (eg. 1/480)

image

[Feature] Github stars button

Is your feature request related to a problem? Please describe.
The project could have a github stars button.

Describe the solution you'd like
Add a github stars button on the right side of the header.
This could be useful: https://buttons.github.io

Additional context
image

[BUG] Text of the Answer choice not readable

Describe the bug
The text contained in the answer options button are not readable enought due to the color of their font.

To Reproduce
Open the website

Expected behavior
User should be able to read the text.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser Microsoft Edge
  • Version 111.0.1661.62

Additional context
Add any other context about the problem here.

[Feature] Home button

Is your feature request related to a problem? Please describe.
Now that the project has multiple pages, a home button is necessary.

Describe the solution you'd like
A home button added to the left side of the header for all pages except the home page.

Additional context
image
image

Figma file can be found here.

This is the home icon that has to be used:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-6 h-6">
  <path d="M11.47 3.84a.75.75 0 011.06 0l8.69 8.69a.75.75 0 101.06-1.06l-8.689-8.69a2.25 2.25 0 00-3.182 0l-8.69 8.69a.75.75 0 001.061 1.06l8.69-8.69z" />
  <path d="M12 5.432l8.159 8.159c.03.03.06.058.091.086v6.198c0 1.035-.84 1.875-1.875 1.875H15a.75.75 0 01-.75-.75v-4.5a.75.75 0 00-.75-.75h-3a.75.75 0 00-.75.75V21a.75.75 0 01-.75.75H5.625a1.875 1.875 0 01-1.875-1.875v-6.198a2.29 2.29 0 00.091-.086L12 5.43z" />
</svg>

[Feature] Create home page

Is your feature request related to a problem? Please describe.
The application needs a home page. In the future the application will have an exam mode.

Describe the solution you'd like
A new home page for the application with two buttons for selecting one of the modes.

Additional context
I created a figma design file here
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.