Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

  1. 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
"contentID": "",
"collectionID": "",
"userID": "",
"attemptID": "",
“questionList“: [“<do-id-1>“,”<do-id-2>”,…..”<do-id-n>”]
}

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.

...