[Design] QuML: Feedback and Solution Popup
Introduction:
Show the feedback popup for QuML questions with a solution. After evaluating the question.
Background:
By default Question set plugin is taking care of showing feedback popup once question evaluation is done. But if the unit plugins want to show its own feedback popup is the background.
Key Design Problems:
- QuML type of question wants to show its own feedback pop for question solutions.
Overview:
The current implementation of question evaluated result showing in feedback popup based on the result of the question. These popups can show only NEXT and TRY AGAIN buttons.
This logic is taken care of by the QuestionSet plugin. But the same used in QuML plugin also. But now QuML having different actions in feedback popup. NEXT, TRY AGAIN and SOLUTION.
Students would like to view Solution explanation for a Question to understand how to solve the question & arrive at the answer.
Solution view should be made available for following QuML Question types:
Multiple Choice Questions
Subjective Reference Questions (VSA, SA, LA)
Today QuML Question templates are accessible only via Program portal.
Please refer below invision for designs https://projects.invisionapp.com/share/9XUJXW4ZR7A#/screens/390483008
Jira ID: - SB-15455Getting issue details... STATUS
Existing flow of Question evaluation and feedback popup :
Solution I:
Solution II:
After question evaluation there is callback method is there to QuestionSet plugin evaluation method, from here if the questionType: 'quml'
then dispatch an event from questionset to the same event listen in quml plugin.
This will take care of logging ASSESS event and showing Feedback popup.
ECML Solution:
[ { "question": "<div class='mcq-vertical cheveron-helper'><div class='mcq-title'><p>स्मृति पाठ के लेखक का नाम है-</p></div><i class='chevron down icon'></i><div class='mcq-options'><div data-simple-choice-interaction data-response-variable='responseValue' value=0 class='mcq-option'><p>जयशंकर प्रसाद </p></div><div data-simple-choice-interaction data-response-variable='responseValue' value=1 class='mcq-option'><p>मैथिलीशरण गुप्त</p></div><div data-simple-choice-interaction data-response-variable='responseValue' value=2 class='mcq-option'><p> महादेवी वर्मा</p></div><div data-simple-choice-interaction data-response-variable='responseValue' value=3 class='mcq-option'><p>श्रीराम शर्मा</p></div></div></div>", "media": [], "responseDeclaration": { "responseValue": { "cardinality": "single", "type": "integer", "correct_response": { "value": "3" } } }, "options": [ { "answer": false, "value": { "type": "text", "body": "<p>जयशंकर प्रसाद </p>", "resvalue": 0, "resindex": 0 } } ... ], "solution": [{ "value": "<div><p>Video as solution</p></div>", "type": "html", "id": UUID //Generate while saving Question }, { "vlaue": {mediaId}, "type": "video", "id": UUID //Generate while saving Question }] ]
Telemetry:
On click of "solution " button, log interact event with id as solution.id(UUID) in the edata.id;
Conclusion:
As discussed with Rayulu Villa and got a confirmation saying go ahead with solution 1.