Skip to content
Snippets Groups Projects
challenge.md 2.06 KiB
Newer Older
  • Learn to ignore specific revisions
  • !!! info ""
    :construction: Section under Construction :construction:
    
    This section explain all the functionnalities in the challenge part
    
    ## Quiz
    
    
    Rémi PAPIN's avatar
    Rémi PAPIN committed
    ### 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.  
    
    Rémi PAPIN's avatar
    Rémi PAPIN committed
      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.