Bulk Upload Questions
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.
Sunbird enables creation of question sets through various workflows enabled in sourcing solution. We plan to complement those workflows by enabling bulk upload of question 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.
Milestones: 1. Bulk upload questions, 2. link them to a question set.
Milestone 1: Bulk Upload Questions
Support Multiple Choice Question with validations such as
Minimum 2 options, maximum 8 options
At least and only one option correct
User provides CSV in the prescribed format filled with required details
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.
Bulk Upload Question Set
https://project-sunbird.atlassian.net/browse/SB-22801
Many times organisations have a pool of questions available in some format - as Word docs on Hard disk, as Scan PDFs of exam papers, as questions in Excel sheet, and so on.
By enabling bulk upload of these questions or question sets would allows us to leverage what is already available in abundance and create maximum value out of it.
→ Bulk uploading of question sets can be done by providing data in the prescribed format. System will create questions, question sets and even link them to a collection (if details are provided).
→ Bulk upload format should support
Uploading of various question categories such as MCQ, Reference, FTB (in future), MTF (in future), and so on..
Providing Question set configuration and metadata
→ After bulk uploading, creator can review the uploaded question sets and bulk submit them for review.
→ System should have a configurable upper limit on number of questions in a question set that can be uploaded.
→ User flow should be similar to Bulk upload of content with an additional step of bulk submit for the contributor. (Check Issue navigator - JIRA (atlassian.net))
User can download prescribed format
Upload the data for bulk upload job
(new) Preview question sets created as draft, edit, and submit
(new) Bulk submit all question sets
→ Reviewer flow remain as-is similar to other bulk upload / approve projects.
Refer to current bulk upload process, template and guidelines here https://docs.google.com/document/d/1PW5b-Mdie6--wsFhGzC-fxVcPbvax4cA-hJyajr8Xew/edit#
https://project-sunbird.atlassian.net/browse/SB-23374
Bulk upload question set format should support
creating multiple question types (V1 will support MCQ with layouts, Subjective reference questions)
creating multiple question sets at once with their details & configurations
linking of these question sets to (target) collections
Bulk upload question set workflow is detailed out here in this ticket
https://project-sunbird.atlassian.net/browse/SB-23375
Contributors can access bulk upload question set functionality similar to how they would access bulk upload content functionality. Broadly, bulk upload can happen in context of project with target collection or in framework category driven projects.
As a contributor
I can download the prescribed format for uploading question set from the portal. Details of prescribed format are here
The question sets are uploaded as draft
Contributor can preview and edit any of the question sets, and the questions in them
Contributor can bulk submit question sets. Bulk Submit is can be performed for any asset in draft state. It will submit all the draft content for review.
As a reviewer, the workflow remains as-is - I can review assets individually or bulk approve.
Columns / Information to be provided by Contributor | Description | In which version |
---|---|---|
QUESTION DETAILS | ||
Question Name / Title * | Human readable / relatable Name or Title or any identifying value for searching and retrieval later | V1 |
Question Primary Category * | MCQ | V1 - MCQ |
Question Additional Category | Derived from target collection or question set | |
Framework categories - Org & Target FW (If K-12, then B,M,C,S, Topics, LO If TPD, then Subjects, Topics) | Should be able to create questions for any of the frameworks. If uploaded within a target collection, then relevant metadata (B,M,C,S) is derived from it. Additional metadata (Topics, LO) can be provided. | V1 - B,M,C,S |
Question Body * | Body or stem of the question | V1 |
Question Image | Image to be used for the question body User provides Google Drive path. System will insert at the beginning of the text, small size, left aligned | |
Options | Should support min 2 & max 8 options | V1 - Only 4 |
Option Images | Should support Google Drive link for the images. Insert images always at the beginning of the question text in small size & left alignment | V1 |
Option Layout | Support Horizontal, Vertical, and Grid layout. Default = vertical. | V1 |
Answer | Should be a number between 1 - 8 for MCQ. | V1 |
Solution Text | V2 | |
Solution Image | V2 | |
Solution Video | V2 | |
Author | Provide if not same as user name of the creator ID on the platform | |
Attributions | ||
Copyright | Default = Tenant name ? | |
License | Default / Always = CC BY … ? | |
QUESTION SET DETAILS 👇🏽 | ||
Question set ID | Any unique ID to group the questions | V1 |
Question set name | ||
Question set category | ||
Question set framework | Derived from target collection | |
Question set settings: Shuffle | On / Off | |
Question set settings: Display | Any number < 0 and < total number of questions in the set | |
Question set settings: Feedback | On / Off | |
Question set settings: Submit | On / Off | |
Question set settings: Attempts | 0 < Attempts < 25 | |
Author | Provide if not same as user name of the creator ID on the platform | |
Attributions | ||
Copyright | Default = Tenant name ? | |
License | Default / Always = CC BY … ? |
At the time of uploading, the upload page has options such as
Upload as draft or Submit for review (on / off)
Question set category: (list of primary categories in the project) [Should this be a column in the sheet?]
Decision tree
Upload question sets in the project
Format for each question type
Format for all question types
Upload questions in a question set
Format for each question type
Format for all question types
Open questions
Should user upload Question set in a sourcing project or Upload questions in a Question set?
Should we have separate CSV formats for each question (interaction) type (primary category) or one single format supporting all types?
Expectation is that each question is checked for validation before uploading
Should Images be supported? What are the limitations?
Questions and Question sets should be in separate sheets - Yes / No?
Benefits of using individual formats is that we can do client side validations such as.. Validations during upload (real-time) for Content upload
Name of the columns
Mandatory column cannot be blank
Maximum 300 content per sheet
Other validations that happen async on server
URL Validation while downloading from source (Google Drive)
Framework values matching
Primary category
File Size limit
..
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