You can test your JavaScript skills with this Quiz. The test contains n. questions.
Aim of the project is to learn to work in group and to adopt the SoC design principle.
From Wikipedia:
In computer science, separation of concerns (SoC) is a design principle for separating a computer program into distinct sections such that each section addresses a separate concern. A concern is a set of information that affects the code of a computer program.
Another concept we need to put into practice is that of state of an application.
From Wikipedia:
A computer program stores data in variables, which represent storage locations in the computer's memory. The contents of these memory locations, at any given point in the program's execution, is called the program's state.
From reecodecamp.org:
State describes the status of the entire program or an individual object. It could be text, a number, a boolean, or another data type. It's a common tool for coordinating code. For example, once you update state, a bunch of different functions can instantly react to that change.
describe the data used in your project.
We use JSON to store the data and the state of the application; data types are arrays and objects. Data is stored in an array of objects containing objects and arrays.
- Questions
- Answers (multiple answers for each question)
- Answer choosen by the user
- Score
- Resorces links
- Create a repo using the starter template
- Invite members
- Create the github page for the repo
- Clone or fork the repository
- Study and modify the backlog
- Devise a development strategy
- Design a wireframe to set guidelines for UI/UX design
- Design a user story dependencies diagram
This user story is developed on branch master
As a user I want to see a welcome message and a button to start the quiz
By accessing the web page, I see a welcome message and a button to start the quiz
-
Create the HTML and the CSS
-
Add the start button
-
This user story is developed on the branch
welcome
.
This branch is merged into themaster
branch after completion.
As a user I want to see the questions
The user clicks on the start button and goes to question number one
- The user can see only one question at a time, together with the different answers
This user story is developed on the branch start-quiz
.
This branch is merged into the master
branch after completion.
As a user I want to see all the questions
The user clicks on the start button and goes to the questions
- The user can see all the list of questions provided
This user story is developed on the branch start-quiz-all-questions
.
This branch is merged into the master
branch after completion.
As a user I want to select my answer for each question
The user sees a list of possible answers from which to choose one; If the selected answer is correct, the text of the selected answer will be in green, red otherwise. Maybe we could use a timer that limits the time to select an answer.
- Use radio button if there is only one correct answer.
- Use chekboxes if there is more than one correct answer (optional)
- The correct answer is displayed in green
- The wrong answer is displayed in red
- Implementing a timer with a count down (optional)
- Implementing a progress bar (optional)
This user story is developed on the branch select-answer
.
This branch is merged into the master
branch after completion.
As a user I want to select my answers
The user sees a list of questions, for each question there are some possible answers from which to choose one; If the selected answer is correct, the text of the selected answer will be in green, red otherwise. Maybe we could use a timer that limits the time to complete the quiz.
- Use radio button if there is only one correct answer.
- Use chekboxes if there is more than one correct answer (optional)
- The correct answer is displayed in green
- The wrong answer is displayed in red
- Implementing a timer with a count down (optional)
- Implementing a progress bar (optional)
This user story is developed on the branch select-answers
.
This branch is merged into the master
branch after completion.
As a user I want to see my score The score is updated in real time at every answer
- Increase the score by one after selecting a right answer
- No increment if the answer is wrong
- Show the score after each selection
This user story is developed on the branch master
This branch is merged to the master
As a user I want to have an overview of the quiz once is completed
Once the quiz is completed the results are shown
- Show the message 'failed' if the user fails the quiz (optional)
- Show the message 'passed' if the user passes the quiz
- Use an Emoji (optional)
- Display all the correct answers in green
- Display all the wrong answers in red
- Display the final score
This user story is developed on the branch review-quiz
This branch is merged into the master
branch after completion.
As a user I want to be able to see the correct answers without taking the quiz
A user can cheat and read all the right answers
- The user is able to see all the answers by clicking on the cheat button
- All questions are available and the answers are available
This user story is developed on the branch cheat
This branch is merged to the master
branch after completion.
As a developer I want to provide to the user a number of questions
A user has any questions to answer
- We need to insert other questions in the JSON file
- We need to find links to add
- Create a PR
- review and merge the PR
This user story is developed on the branch questions
This branch is merged into the master
branch after completion.
As a developer I want to have a functioning project
As a developer I want to solve the bugs I encounter in my code
As a developer I want to clean up my code
As a developer I want to refactor my code
As a developer I want to use JDOC to document the functions I am using
As a developer I want to use the project board, creating issues and documenting what I am doing