...
Current Workflow
...
Solution Proposed
Technical Design Details:
Creation side Enhancements:
Introduce “serverEvaluable“ attribute at question and questionSet Object
...
Code Block |
---|
//Question Set Object "questionSet": { "serverEvaluable": true //#true for Server Side Valuation Default:#false for client side validation } //Question Object "question" : { "serverEvaluable": true } |
Consumption side Enhancements
There are two modes of accessing questionSet post this proposed change:
a) client-evaluable mode : default (serverEvaluable attribute does not exist or is false)
...
We are proposing that, in this mode, the player uses a new API for questionSetHierarchy, the existing question list API and a new submitAssessment API.
QuestionSet Hierarchy API (new POST API)
The current questionsetHierarchy API is a get call and does not take in arguments. Introduce a new POST method for QuestionSet Hierarchy API that can take in request body. This API will have payload as follows
...
Info |
---|
QuestionSetToken : This key is almost equivalent of jwt token created as follows: “questionSetToken“ = > { “timestamp”: epoch |
2. Updates to QuestionList API
...
There are multiple attributes which persists correct answer in QuML
a) responseDeclaration: (Shown above)
b) answer
c) editorState
3. SubmitAssessment API to evaluate user responses & score.
...