...
...
...
...
...
...
...
...
...
...
...
...
...
Introduction
This wiki explains the design and implementation of bulk upload of questions.
Jira issue: https://project-sunbird.atlassian.net/browse/SB-23374
Problem
...
Statement:
Enable Bulk question creation.
Enable Bulk question creation and link them to sections(Units).
Enable Bulk question creation with common metadata ex: questionType, channel, createdBy, status, licence and BGMS.
Solution 1:
Create a generate QuML API for various interaction types such that it takes required parameters as input and generates a QuML output. The API takes input as a CSV file and JSON body. This API is responsible for validating and creating questions on the platform.
...
HEADER PARAMETERS:
Content-Type (*required) |
Media types can be:-
|
X-Channel-ID (*required) |
It the Unique Id to identify the root organization to which the user belongs |
REQUEST BODY: multipart/form-data
file (*required) |
This is a .csv file. Each line of the file is a data record, separated by commas |
...
REQUEST BODY: application/JSON:
fileUrl (*required) |
|
Additional Properties (Optional) | createdBy, questionType, author, stage OR status |
...
Code Block | ||
---|---|---|
| ||
{ "id": "api.v1.bulkupload", "ver": "1.0", "ts": "2021-10-20T09:20:59.943Z", "params": { "resmsgid": "09faf370-3187-11ec-b57e-5ffde477525a", "msgid": "095a6db0-3187-11ec-b57e-5ffde477525a", "status": "successful", "err": null, "errmsg": null }, "responseCode": "OK", "result": { "processId": "112ed159-c805-4df5-9da3-3fcd73122cc2", } } |
Solution 2:
Create a generate QuML API for various interaction types such that it takes required parameters as input and generates a QuML output. The API takes input as an array of questions.
...
HEADER PARAMETERS:
Content-Type (*required) |
The possible media types can be:-
|
X-Channel-ID (*required) |
It the Unique Id to identify the root organization to which the user belongs |
...
Code Block | ||
---|---|---|
| ||
{ "id": "api.v1.bulkupload", "ver": "1.0", "ts": "2021-10-20T09:20:59.943Z", "params": { "resmsgid": "09faf370-3187-11ec-b57e-5ffde477525a", "msgid": "095a6db0-3187-11ec-b57e-5ffde477525a", "status": "successful", "err": null, "errmsg": null }, "responseCode": "OK", "result": { "processId": "112ed159-c805-4df5-9da3-3fcd73122cc2", } } |
...
Question Category will be Multiple Choice Question for this version.
...
Additional Category is derived from the question set
...
Target Question Set ID to be auto-derived when user is uploading questions within a question set. This will not be shown in the CSV upload format to the contributor.
...
Taxonomy Framework Categories: These will derived from the Question set when questions are being uploaded within a question set. Questions can be uploaded in a question created for any framework - all available categories should be derived and tagged to questions. Below are sample categories for K-12 framework:
Org_FW_Board
Org_FW_Medium
Org_FW_Class
Org_FW_Subject
Org_FW_Topic
Org_FW_LearningOutcome is not supported in bulk upload sheet. User can edit from UI.
Org_FW_Skill is not supported in bulk upload sheet. User can edit from UI.
...
Conclusion:
<TODO>