Bulk Upload Questions
https://project-sunbird.atlassian.net/browse/SB-22801
Teachers have a large pool of questions they would have already created for conducting tests, quizzes, and exams. We want to leverage all these assets available in abundance in the community of educators through ecosystem participation. We have seen following scenarios where the need of bulk upload of questions has come up:
An organization already have questions in an existing system. Hence creating them manually through UI is a lot of effort
An organisation is creating new questions, but wants to import questions in multiple systems, not just Sunbird (e.g. DIKSHA). Hence they would like to keep the questions in a common spreadsheet format and bulk uploaded into multiple systems
An organization is creating new questions and also simultaneously getting the questions translated into multiple languages. Hence having the questions in a spreadsheet is easy to share them with multiple translators and get the translations done.
Sunbird enables creation of question sets through various workflows enabled in Sourcing solution. We plan to complement those workflows by enabling bulk upload of questions in following workflows (in order of priority)
Bulk upload questions within a question set, where the question set might be created in a target collection driven sourcing project or in a taxonomy driven sourcing project.
Bulk upload questions within a question set, where the question set is the target object in a sourcing project.
Bulk upload questions in a framework driven sourcing project.
To enable the above capabilities fundamentally requires
Ability to bulk upload questions
Link them to a question set
We will be enabling bulk upload of questions and linking them to a question set considering CSV (comma separated values) input. Users are likely to use tools such as Google Sheets, Microsoft Office Excel, and other spreadsheet editing tools. Detailing out the key milestones below
Milestone 1: Bulk Upload Questions
The goal is to upload questions with its associate media (images)
Support Multiple Choice Question (MCQ) with validations such as
Minimum 2 options, maximum 8 options
At least and only one correct option
Question and Options can have images. Google Drive path for image is provided by user which is extracted by system (bulk upload tool). This is already available as a component. Read more here.
Every question can have following details (metadata)
Name
Taxonomy Framework Categories: Board, Medium, Class, Subject, Topic, Learning Outcome. These will derived from the Question set if questions are being uploaded within a question set.
Keywords
Author
Attributions
User provides CSV in the prescribed format filled with required details
Basic validations such as
Text contains only unicode characters
Any cell does not contain any images
All mandatory columns are filled for a particular row in CSV
- Kartheek Palla Please share a final format of CSV for Bulk Uploading Questions similar to bulk upload content
Milestone 2: Link Questions to a Question Set which are being bulk uploaded
The goal is to link questions at relevant place in a question set hierarchy structure
Level 1 Question Set Unit
Org_FW_topics
Target_FW_Medium
Target_FW_gradeLevel
Target_FW_subject
Target_FW_topic
Bulk Upload Questions template
https://docs.google.com/spreadsheets/d/1ndzapGGV6q8698x-NQzK_ufln4YX1HQ09jsFsC7kA60/edit?usp=sharing
Reference material
Bulk Upload Content related /wiki/spaces/DO/pages/1581350917
Implementation details
Create a generate QuML API for various interaction types such that it takes required parameters as input and generate a QuML output. For example, Multiple Choice Question fundamentally contains Question, Options, and Correct Answer. The API takes these 3 as inputs in HTML or JSON format and generates a QuML spec. This also allows QuML to evolve rapidly as just by updating this ‘Generate QuML’ API with latest QuML spec, we can upgrade various places where Questions & Question sets are getting created such as Question Set Editor, Bulk Upload Questions & Question sets.
This logic exists today ingrained in the Question creation component. It needs to be extracted out and made available as API / something.
Question Set APIs:
http://docs.sunbird.org/latest/apis/questionapi//#tag/QuestionSet-APIs
Question APIs:
http://docs.sunbird.org/latest/apis/questionapi//#tag/Question-APIs
Add Comment