Newer
Older
!!! info ""
:construction: Section under Construction :construction:
This section explain all the functionnalities in the challenge part
## Quiz
### Basic Question
All basics Questions are created in the quizEntity.json. We have to add :
- questionLabel => Label of the question
- Answers => An array of three answers (answerLabel, isTrue)
- description => Explain the question
- source => Source of the explanaition
In the question page the user have to select an answer and click validate.
Then, he sees the right answer and a modal with the explaination and the source. After this modal, he goes to the next question.
### Custom Question
At the end of every quiz, we're creating a custom question. During the creation of the quiz, we have to add :
- type => data or calculation
- period => the period selected for the calcul
- timestep => the interval of the calcul (Day, Month, Year)
We get all this information to determine the custom question (All information are in the quizEntity.json). Depending of the question type, the system calcul a maximum or an average data.
Then, he generate two randoms answers following the right answer.
## Mission
## Duel
### On launch
In order to find a valid reference period we search for a period which is defined by the duel duration.
We check the most recent period first if it's complete and then we go farther and farther in the time if the ones before got missing values.
We also define a threshold for a maximum old period (6 months for the moment determined in the code ==> hardcoding).
If the thresold is reached and no valid period was found, we alert the user that he can't launch the duel and have to wait before he can retry this process.
### On going
Every time the user go into the duel mode, we are checking if the duel is finished.
if (actualDate - startDate) > duelDuration, the duel is done.
### On finish
Once the state of the duel is set to DONE, we save the user result and determine if he wins (userComsumption < threshold of the reference period) or if he loses. Then the user sees his earned badge.