Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

...

Question metadata which has some differences from the QuML specs are:-

  • responseDeclaration

  • media

responseDeclaration

Currently, the response declaration is stored in the below format but there are two properties that are not allowed in it, which are: maxScore and  outcomes

...

  • The player will check if the question is having the outcomeVariables in the metadata of the question and what’s the maxScore value present in it.

  • if the outcomeVariables property is found then the player will use it as is it.

  • If the question does not have the outcomeVariables property in the metadata then the player will look property in the responseDeclartion.

media

Currently, Question metadata contains media in the below format:

...

QuestionSet metadata which has some differences from the QuML specs is:-

  • timeLimits

timeLimits

Time limits are currently being stored in the question set metadata as below:

Code Block
languagejson
timeLimits: {
   "maxTime": "240",
   "warningTime": "60"
}

The use of maxTime is showing to show the timer on the QuML player and the use of warningTime is used to show the timer in red color indicating you are left with only these few minutes indicate the time remaining to complete the questionsetquestion set.

...

But as per the QuML schema, it should be stored in the below format:

...

Proposed Solution for timeLimits

Editor Changes:

We can set the limit for the complete question set as:

Code Block
languagejson
timeLimits:
{
   questionset: {
           min: number,
           max: number,
           warn: number // update the QuML specs
           
   }
}

If we have a time limit for each of the questions we can will store the time limit to the question set metadata as:

Code Block
languagejson
timeLimits:
{
   question: {
           min: number,
           max: number,
           warn: number // update the QuML specs
   }
}

If we want to store max and warn value but don't want to store min value we can store the data in the below format:

Code Block
languagejson
timeLimits:
{
   questionset: {
           min: null,
           max: 240,
           warn: 60
           
   }
}
Editor Changes:

Note: The timer field in the question set editor is part of the common form which is taking maxTime and warningTime as input.

We can keep on using the same configuration for the field in the form configuration keeping maxTime and warningTimeand . And in the editor code we can handle maxTime with max and warningTime with min warn.

  • With Migration

    • we can do the data migration for the old questions and update the question with above mentioned format.

...

The player will first check if the question has timeLimits.questionset it will take the min and max warn value for from there, if timeLimits.questionset is undefined and timeLimits directly contains maxTime and warningTime it will take the value for from there.