The sunbird platform enabled the content creators to create questions and select multiple questions and create an assessment content using them. But, there is no lifecycle management and review workflow for question object to enable crowed sourcing and generate a curated question bank for creators to create assessments and question papers.
This wiki explains the current design of the Question and QuestionSet objects and the enhancements to enable more functionality and features in sunbird platform.
In sunbird platform, the Content object embed the QuestionSet and QuestionSet is a group of Questions.
QuestionSet:
It is always within a Content. It is not discoverable and available directly to the end users.
The lifecycle of the QuestionSet goes with the Content in which it is embedded. It is not an independently consumable object.
No public/high-level APIs to handle the hierarchy and lifecycle.
Questions are always immediate children to it. There is no nested hierarchy.
Question:
No APIs to manage lifecycle.
Once created it is Live.
Question - Define lifecycle with its status and enable APIs.
QuestionSet - Define lifecycle with its status and enable APIs.
Visibility for Question and QuestionSet.
QuestionSet - As an independently consumable object.
The Content and Collection objects in sunbird platform already has the capabilities whatever we want to enable for Question and QuestionSet. The architecture and design also working at scale. So, it is the easy and better way to re-use the existing design for Question and QuestionSet too.
Based on Content and Collection,
Define the Lifecycle
Define the behaviour of visibility.
We will define behaviour of the Question and QuestionSet as below.
Question is compared with Content. But, Question is not a object to directly use.
QuestionSet is compared with Collection.
Content & Collection | Question & QuestionSet | |
---|---|---|
APIs | Create, Update, Review, Publish, Review Reject, Flag, Flat-Accept, Flag-Reject, Retire | Enable all these APIs based on the generic KP schema definition and validation. |
Visibility |
|
|
Offline Usage | For both the platform generates ECAR for offline Consumption. |
|
Below micro-services handles the Question and QuestionSet Objects.
|
In Sunbird Platform only Content and Collection objects are directly accessible and consumable by the end users. We will make the below changes for QuestionSet also to use it same as Content or Collection.
Enable APIs to manage the lifecycle of QuestionSet.
Create, Update, Update Hierarchy, Review and Publish.
Generate ECAR file on publishing QuestionSet for offline consumption.
|
|
|
We are enabling QuestionSet as individually consumable object in sunbird platform. So, allowing them to add as children to the Collection object will support features like, Assignment in between Course/TextBook, QuestionPaper end of the Course etc,.
With this design and implementation, we are enabling most of the capabilities and behaviour to Question and QuestionSet object which are already exists for Content and Collection.
Below capabilities we will enable together (for all object by generalising) once we achieve this.
Visibility: Parent for Content and Question.
Collection and QuestionSet with Visibility: Parent as reusable objects in the platform.
QuestionSet - is always materialised. Dynamic QuestionSet capability is not enabled now.
With this design and implementation, we are enabling most of the capabilities and behaviour to Question and QuestionSet object which are already exists for Content and Collection.
Below capabilities we will enable together (for all object by generalising) once we achieve this.
Visibility: Parent for Content and Question.
Collection and QuestionSet with Visibility: Parent as reusable objects in the platform.
QuestionSet - is always materialised. Dynamic QuestionSet capability is not enabled now.
<TODO>
<TODO>
Separate Mime Type For QuestionSet?
QuestionSet contains only Questions but, Collection contains Content and QuestionSet.
Structure is same but, the publishing process require its own logic to handle.
QuestionSet should generate printable version (PDF) based on configuration.
Now we are handling only materialised QuestionSet. When we enable Dynamic QuestionSet (based on search query) it requires separate handling.