This is the proposed engineering implementation to integrate the Question Set Editor inside the Sourcing solution Project Creation workflow, based on this requirements document. (Confluence Document) and these mockups. (Google Slides)
Proposed Implementation
1. Sourcing
- Project Creation
We will use the sunbird-collection-editor to create question sets as target objects.
We will add an
enableQuestionCreation
attribute to the editor configurationWe will implement changes to be able to emit question set metadata on exiting the question set creation page
2. Contribution
- Question Creation
We will use the sunbird-collection-editor to create new questions inside question sets.
We will add a new object type to editor configuration:
Question
We will implement requisite changes:
Editor: Accepting a question ID to initialise the editor
Header: Adding Send for review, Publish, Reject etc. buttons
Question: Only saving question and not updating the collection hierarchy on save etc.
- Add from Library
We will use the sunbird-collection-editor to search and add new questions to question sets from the existing library.
We will add an
enableLibrary
attribute to the configurationWe will need to enhance the collection editor:
Library: We will need to enable the existing library components for objects of type
Question
Quml Player: We will need to support previewing QuML questions in the library component etc.
- Chapter List
In the creation-portal, we will have to enable changes to invoke the sunbird-collection-editor
and handle events emitted by it.
We will have to create new
Questions
and add them to theQuestionSet
hierarchyOnly for projects with target objects of type
QuestionSet
, we will implement opening thesunbid-collection-editor
on "Add from Library" being clicked - for the rest, the existingmvc-library
component will continue to be used.
3. Publish
We will use the sunbird-collection-editor to publish question sets.
We will have to use a combination of the
enableQuestionCreation
attribute andsessionContext
variables to display/hide the "Publish" option
We will make changes to the knowledge-platform to modify the publish pipeline for question sets.
We will have to modify this logic to be able to publish question sets only with "Approved" questions, and not re-create questions when the question set is re-published.
DB Changes: Program Table
column_name | datatype | postgresql command |
---|---|---|
targetcollectionprimarycategories | jsonb |
|
DB Changes: Configuration Table
INSERT INTO "public"."configuration" ("key", "value", "status") VALUES ('programTargetObjectMap', '[ { "identifier":"obj-cat:content-playlist_collection_all", "name":"Content Playlist", "targetObjectType":"Collection", "associatedAssetTypes":["Content"], "contentAdditionMode":["Search"] }, { "identifier":"obj-cat:demo-practice-question-set_questionset_all", "name":"Demo Practice Question `Set", "targetObjectType":"QuestionSet", "associatedAssetTypes":["Question","QuestionSet"], "contentAdditionMode":["New"] }, { "identifier":"obj-cat:digital-textbook_collection_all", "name":"Digital Textbook", "targetObjectType":"Collection", "associatedAssetTypes":["Content"], "contentAdditionMode":["Search"] }, { "identifier":"obj-cat:professional-development-course_collection_all", "name":"Course", "targetObjectType":"Collection", "associatedAssetTypes":["Content"], "contentAdditionMode":["Search"] }, { "identifier":"obj-cat:question-paper_collection_all", "name":"Question paper", "targetObjectType":"Collection", "associatedAssetTypes":["Content"], "contentAdditionMode":["Search"] } ]', 'active');`
Add Comment