...
Technical Design Details:
Step 1: Introduce QuestionSetToken in Question Set Hierarchy API. Mark Question and QuestionSet as “evaluable“
QuestionSet Hierarchy API : A new attribute in QuestionSet to be introduced to have evaluated response on server. (“evaluable“). Every QuestionSet Hierarchy will attach “QuestionSetToken“ based on encrypted value of user-id, questionset-id, collection-id.
Code Block |
---|
"questionSet": { "timeLimits": "{\"maxTime\":\"3600\"}", "questionSetToken": "", //#Question Set Digest to be generated at hierarchy read API with combination of "Question Set ID + userID" "evaluable": true //#true for Server Side Valuation Default:#false for client side validation } |
Step 2: Introduce responseKey(“Encrypted Value of Correct Response“) instead of correctResponse.value
Question Read API : Any Question Associated with evaluable behaviour to trim off response declaration from Question Set. Instead a responseKey to be shared along with responseDeclaration. responseKey is encrypted value of response. This is permenantly persisted as encrypted. Only QuestionRead API with questionCreator access should be able to access the decrypted value on demand.
Code Block |
---|
"evaluable": true, "responseDeclaration": { "response1": { "maxScore": 1, "cardinality": "single", "type": "integer", -- To be Trimmed off ---- "correctResponse": { "value": "0", "outcomes": { "SCORE": 1 } }, -- To be Trimmed off -- #Newly Introduced Attribute "responseKey": ["#Computed Encrypted Value of the correctResponse"] } }, |
Step 3: Validate only Evaluable Questions to be part of Evaluable Question Set
Question Create API:
It is possible to permanently mark the question to be “evaluable“ in nature. Any evaluable question would automatically qualify for evaluable question Set. These Questions can be part of Evaluable QuestionSet only. Question Read of Evaluable Questions should exhibit the behaviour mentioned above.
...
Info |
---|
KeySet (Futuristic): Any Responses on Question Set can be persisted separately to ensure the keyset can be used for administrative purposes. |
Step 4: Introduce QuestionReponseValidate API to process user responses to QuestionSet.
QuestionResponseValidateAPI (Async API Behaviour):
...