Introduction
This document describes the problem statement and design for enabling the FTB in the (New) QuestionSet Editor.
JIRA Issue:
- IQ-245Getting issue details... STATUS
- IQ-273Getting issue details... STATUS
Background
As we are deprecating the ECML Question creation inside the Interactive content editor. So inQuiry would need to have a suitable substitute for all its used capabilities in the (New) Question set editor.
Here’s a list of features currently available and supported by the Interactive Content Editor for FTB Question.
There should be at least one blank
Blanks can be created by using square brackets [[ ]] to indicate words to be made blank in a sentence
Use square brackets [[ ]] to indicate blanks in the sentence. The words between [[ ]] will appear as blanks to students.
Example: 'The tree is [[tall]] and [[strong]].' The question will be created as: 'The tree is _______ and _______.' The correct answers will be 'tall' and 'strong'.
Multiple blanks are supported
Keyboard type:System (Android / OS)English (A-Z, not QWERTY)Numbers only26 keys configurable
Partial scoring
Unordered evaluation
Add Image and
Audioto Question or OptionAdd Math & Scientific Text (Formulae & Equation) to Question or Option
Problem Statement
Currently, the QuestionSet editor does not support FTB Question creation.
How can inQuiry enable the same capabilities in the new QuestionSet Editor with the same features supported by the existing Interactive editor?
Solution
In this solution, inQuiry will use the same code and functionality used in the interactive editor.
The inquiry will build a new CKEditor 5 plugin that helps users to create blanks using square brackets [[]] to indicate words instead of typing manually square brackets in the textarea.
A button will be present in the toolbar similar to other buttons like Bold, Heading, etc...
The user will be able to add blanks as below:
Using the button available in the toolbar.
By typing manually in the textarea.
Select the words first then click on the button available in the toolbar.
The button will act as a toggle so by clicking on the button again, blanks can be removed and selected words will be converted into normal text.
We will use the existing code to extract the answers from the questions. Here’s the sample link:
Keyboards:
As of now, the following keyboard types are supported by the old editor:
Device
English
Custom
This custom keyboard is written in pure javascript as a plugin embedded in the interactive editor loads based on needs and does not use any third-party library. So inQuiry will check the feasibility of this plugin and try to integrate it as is it.
Here are the diff types of the sample configuration for each type:
Device -
"keyboardConfig":{"keyboardType":"Device","customKeys":""}
English -
"keyboardConfig":{"keyboardType":"English","customKeys":""}
Custom -
"keyboardConfig":{"keyboardType":"Custom","customKeys":"h,v,t,m,n"}
We will store this configuration as part of the question metadata as this is an additional configuration given to the editor. This property has to be updated in the question schema file as below:
"keyboardConfig": { "type": "object", "items": { "type": "string", "enum": [ "Device", "English", "Custom" ], "default": "Device" } }
Media: Image + Audio
All the images will be stored the way we are storing the images for the others type.
The audio workflow will be not enabled in the new FTB workflow as the new question set editor does not have any audio feature in the asset browser.
Here is the existing media sample:
// HTML <figure class="image"> <img src="/assets/public/content/assets/do_2136875639892623361238/download-1.jpg" alt="download (1)" data-asset-variable="do_2136875639892623361238"> </figure> <p>Who is this ?</p> "media": [ { "id": "do_2136875639892623361238", "type": "image", "src": "/assets/public/content/assets/do_2136875639892623361238/download-1.jpg", "baseUrl": "https://dev.inquiry.sunbird.org" } ]
Partial scoring
A Scoring Logic can have the following values:
ALL
Full marks are assigned only when all the correct answers are entered.
PARTIAL
Partial scores are assigned of any one or more correct answers entered. The total marks of the question will be divided equally amongst all responses.
ALL | PARTIAL |
---|---|
Q: The color on the Indian flag are ____ , _____ , _____. A: The color on the Indian flag are saffron , white , _____. OR A: The color on the Indian flag are saffron, white, yellow. A:The color on the Indian flag are saffron , ______ , _____. OR A: The color on the Indian flag are white , ______ , _____. | Q: The color on the Indian flag are ____ , _____ , _____. A:The color on the Indian flag are saffron , _____ , _____. OR OR
A:The color on the Indian flag are saffron , white , ____. A.The color on the Indian flag are saffron , green , _____. A:The color on the Indian flag are green , white, _____.
|
Unordered evaluation
An Unordered evaluation Logic can have the following values:
TRUE
Answers entered in an unordered sequence will be considered correct answers.
FALSE
Answers entered in an unordered sequence will be not considered correct answers.
TRUE | FALSE |
---|---|
Q: The color on the Indian flag are ____ , _____ , _____. OR Q: The color on the Indian flag are ____ , _____ , _____. A: The color on the Indian flag are red , white , saffron.
| Q: The color on the Indian flag are ____ , _____ , _____. OR OR Q: The color on the Indian flag are ____ , _____ , _____. |
FTB Data Model
Here’s the new schema structure for the FTB which is as per QuML compliance.
{ "responseDeclaration": { "response1": { "cardinality": "single", "type": "string", "correctResponse": { "value": [ "0", "1" ] }, "mapping": [ { "response": 0, "outcomes": { "score": 0.5 } }, { "response": 1, "outcomes": { "score": 0.5 } } ] } }, "outcomeDeclaration": { "maxScore": 1 }, "media": [], "body": "<p>capital of india is [[New Delhi]]. and capital of USA is [[New York]]</p>", "editorState": { "options": [ { "answer": true, "value": { "body": "New Delhi", "value": 0 } }, { "answer": true, "value": { "body": "New York", "value": 1 } } ], "question": "<p>capital of india is [[New Delhi]]. and capital of USA is [[New York]]</p>" }, "interactions": { "response1": { "type": "text", "options": [ { "label": "New Delhi", "value": 0 }, { "label": "New York", "value": 1 } ] }, "validation": { "required": "Yes" } }, "interactionTypes": [ "text" ], "name": "Fill In The Blanks", "mimeType": "application/vnd.sunbird.question", "mimeType": "application/vnd.sunbird.question", "objectType": "Question", "primaryCategory": "FTB Question", "qType": "FTB", "keyboardConfig": { "type": "Device", "customKeys": "" } }
Add Comment