Table of Contents | ||||
---|---|---|---|---|
|
Introduction
Content Sourcing of ETB is the step of ETB process where states pool existing content from various sources or create new content relevant to the textbooks that are part of their ETB program scope.
Following are the different ways content is sourced for ETB:
- Upload existing content (pdfs, videos or html)
- Reuse existing DIKSHA content
- Create new content
However this content sourcing process is not textbook driven. The content is uploaded/created, reviewed and published outside the scope of ETB. Once published, they are linked to the relevant textbooks. This results in multiple issues:
- Content contributors do not have the right context when they create or upload content, resulting in content that may not be very relevant.
- Content contributors have to explicitly tag the content with relevant board, medium, class, subjects and topics based on the textbook for which the content is created.
- ETB program administrators cannot track the progress of ETB - number of contents that are getting created, reviewed for each textbook.
To solve the above problems, the solution is to enable content contributors to contribute content (upload existing or create new) based on Textbooks under program scope. This process has been enabled as an experiment for CBSE. The same has to be enabled for all the states.
JTBD
- Jobs To Be Done:
- As a content contributor I want to contribute relevant content for the textbooks under program scope.
- As a content reviewer I want to review the content contributed for textbook under program scope.
- As a program admin I want to see the over all content dashboard for monitoring.
- User Personas: This story is relevant for Content contributor, content reviewer, program admin.
Requirement Specifications
Pre-requisites:
- A state sets up an ETB program and defines the scope from back-end (same as existing functionality for CBSE).
- The state configures textbook creators, textbook reviewers, content contributors and content reviewers for the program through back-end.
- Textbook creators create or add ETBs to the program scope (as defined in the story:
). As long as mentioned story is not implemented, it will be done form back-end.Jira Legacy server System JIRA serverId 2207a759-5bc8-39c5-9cd2-aa9ccc1f65dd key SB-16761
Contribution can be done either by contributing content to respective node of the textbook or through bulk upload.
Use Case 1: Content contribution for a textbook through bulk upload.
Bulk upload option shall be available for a textbook under program. Bulk upload will be done only for a textbook at a time. A new role "Bulk content publisher" will be created in the system and a user with that role can only do Bulk upload and publishing of content. Textbook for which the bulk upload is being done must be in draft state. Multiple bulk upload can be done for a textbook, but not at the same time. Upon successful upload, content would be created, published and linked to relevant section of the textbook as mentioned in bulk upload file.
Overall Process Workflow
User Story
1: A new role "Bulk Content Publisher" is enabled in the system and a set of users are configured with this role for ETB Program
System supports will enable a new role called "Bulk Content Publisher". A user with this role can perform the following actions:
- Bulk upload content - This will create all content that is bulk uploaded and as well as publish it
- Link content to a given Textbook - Link bulk uploaded content to Textbook sections
User Story
1: User
access Dikshaaccesses DIKSHA & selects required textbook under program for which bulk upload has to be done
Main Scenario: Valid user having content contributor and reviewer rights for a program access relevant textbook under program for which bulk upload has to be done.
Srl. No. | User Action | Expected Result |
---|---|---|
User enters Diksha URL | Diksha page opens with sign in option. | |
User enters valid credentials | User sign in and land on tenant home page | |
User clicks on "Contribute" | Program list page opens which has all the programs created for the state. | |
User selects required program | User lands on the textbook page. Page has all the books displayed under program scope. | |
User selects the required textbook | Textbook TOC page opens which has contribution options both either to contribute at each node. There is also "Bulk Upload Content" option. |
Exception Scenarios
Srl. No. | Error / Exception | Expected Handling | ||
---|---|---|---|---|
In case user User does not has contributor right for any of have any role assigned in the program | User will not see "Contribute" option on Diksha tenant home page on top | In case user does not has access to other programs | Do not display those program at all. |
The program is not displayed in the list of Programs in the Program list page |
User Story: User selects bulk upload option
Main Scenario:
Valid user having content contributor and reviewer rights for a program selects bulk upload option on textbook level.User selects bulk upload option for the first time for the textbook
Srl. No. | User Action | Expected Result | |
---|---|---|---|
In Textbook detail page, user clicks on "Bulk Upload Content" | Dialogue Dialog box opens with following options to "Upload File" , "Download Sample File", "Last Upload Status"User clicks on - The option is enabled for user to upload file "Download Sample File" option in dialogue box | Sample file gets downloaded Link to sample file: https://docs.google.com/spreadsheets/d/1zo_KVAU3y_RR3p4Gpgud-geROZYXv9Efpgwdflszemc/edit#gid=0 |
Alternate Scenario
- The option is enabled for user to download sample file |
Alternate Scenario: User selects bulk upload option, after completing a previous bulk upload
Srl. No. | User Action | Expected Result |
---|---|---|
User In Textbook detail page, user clicks on "Last Bulk Upload Status" | This should display the upload status of the last upload.
For the first time it would not be there since there is no previous bulk upload. |
Content" | Dialog box opens with following options "Upload File" - The option is enabled for user to upload file "Download Sample File" - The option is enabled for user to download sample file "Last Upload Status" - Shows status of previous bulk upload process along with option to view status report. |
Alternate Scenario: User selects bulk upload option, while a bulk upload process is in progress
Srl. No. | Error / ExceptionUser Action | Expected Handling | If user does not has reviewer rights for the program. | Bulk upload option shall not be available for such users on textbook level. They can only contribute content one by one for respective node. |
---|
User Story 3: Populate Bulk Upload csv file and start upload
Main Scenario: Valid user having content contributor and reviewer rights for a program populate the sample file and upload
Srl. No.
User Action
Expected Result
User populates the bulk upload file in the required format in her local system
User selects ""Upload File"
Dialogue box opens with an option to select and upload csv
User selects bulk upload file from local system and clicks on "Start Upload"
Upload is started and user is taken back to Bulk Upload dialog
Alternate Scenario:
Srl. No. | User Action | Expected Result |
---|---|---|
In dialogue box, After selecting the file from local device, an option should display "Change File". | Upon clicking on it, user should be prompted to again pick up file from local machineResult | |
In Textbook detail page, user clicks on "Bulk Upload Content" | Dialog box opens with following options "Upload File" - The option is disabled, and user cannot upload file "Download Sample File" - The option is enabled for user to download sample file "Last Upload Status" - Shows status as "In progress" along with option to view the status report of the process in progress. |
Exception Scenarios
Srl. No. | Error / Exception | Expected Handling |
---|---|---|
If user has only contribution rights but does not have "Bulk Content Publisher" role in the program. | Bulk upload option shall not be available for such users on textbook level. They can only contribute content one by one for respective node. |
User Story 3: Populate Bulk Upload csv file and start upload
Main Scenario: User uploads Bulk Upload CSV and starts upload process
Srl. No. | User Action | Expected Result |
---|---|---|
User populates the bulk upload file in the required format in her local system | ||
User selects ""Upload File" | Dialogue box opens with an option to select and upload csv | |
User selects bulk upload file from local system and clicks on "Start Upload" | Upload is started and user is taken back to Bulk Upload dialog |
Alternate Scenario: Change Bulk Uploaded File
Srl. No. | User Action | Expected Result |
---|---|---|
In dialogue box, After selecting the file from local device, an option should display "Change File". | Upon clicking on it, user should be prompted to again pick up file from local machine. | |
Alternate Scenario: Valid user having content contributor and reviewer rights for a program selects bulk upload option on textbook level.
Srl. No. | User Action | Expected Result |
---|---|---|
In Textbook detail page, user clicks on "Bulk Upload Content" | Dialogue box opens with options to "Upload File", "Download Sample File", "Last Upload Status" | |
User clicks on "Download Sample File" option in dialogue box | Sample file gets downloaded Link to sample file: https://docs.google.com/spreadsheets/d/1zo_KVAU3y_RR3p4Gpgud-geROZYXv9Efpgwdflszemc/edit#gid=0 | |
Alternate Scenario
Srl. No. | User Action | Expected Result |
---|---|---|
User clicks on "Last Upload Status" | This should display the upload status of the last upload.
For the first time it would not be there since there is no previous bulk upload. |
Exception Scenarios
Srl. No. | Error / Exception | Expected Handling |
---|---|---|
In case file contains validation errors | Bulk Upload dialogue shows the list of validation errors (Refer validation error section in the last of this PRD for detail). | |
User Story 4: Rectification of validation errors and upload again
Main Scenario: User will rectify validation errors identified and upload again.
Srl. No. | User Action | Expected Result |
---|---|---|
User rectify the errors identified. | File should not have any validation errors. | |
User upload rectified file. | Successful upload starts and user should be redirected to textbook level page. | |
While upload is in progress and user clicking on "View Report" |
| |
Once upload is complete | 1. Once upload is complete, "Upload csv file" button will be enabled. Now user can start a new upload. 2.There will be two type of complete status - would be displayed depending upon contents upload status:
3.Till the new upload is started, "Last uploaded file" will show the status of previous upload. 4. User would be required to rectify the reason of failure and upload the failed content again 5. Once Bulk Upload is completed successfully, all the contents are published and linked to the textbook for the respective sections as given in the upload csv file. |
Exception Scenarios
Srl. No. | Error / Exception | Expected Handling |
---|---|---|
While upload is in progress, user tries to click on "Upload CSV" | Button should be disabled for next upload while upload is in progress |
Wire frames
Wire frame link: https://projects.invisionapp.com/share/7QST139948N#/screens/374220905
Localization Requirements
NA
Telemetry Requirements
Event Name | Description | Purpose |
---|---|---|
Click on button "Upload CSV for Bulk Upload" | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Click on "Browse" button in upload dialogue box to upload input file | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Click on "Start Upload" input file | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Download of sample template file | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Click on "View Report" | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Download of "Status Report" | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Click on "Last Uploaded File" | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Non-Functional Requirements
Performance / Responsiveness Requirements | Load/Volume Requirements | Security / Privacy Requirements |
---|---|---|
Every sheet can have maximum 3000 contents which should take approximately 8 hours for creation. 9.6 seconds per content. | ||
Further every content should take 3 sec for publishing, means 2.5 hours approximately for 3000 content to publish. | ||
Hence total in 11 hours, a sheet with 3000 content should be processed (creation + Publish). |
Impact on other Products/Solutions
Product/Solution Impacted | Impact Description |
---|---|
Current bulk upload sheet | Update the bulk upload sheet as per new asks, refer the sample file: Link to sample file: https://docs.google.com/spreadsheets/d/1zo_KVAU3y_RR3p4Gpgud-geROZYXv9Efpgwdflszemc/edit#gid=0 |
Impact on Existing Users/Data
User/Data Impacted | Impact Description |
---|---|
Key Metrics
Srl. No. | Metric | Purpose of Metric |
---|---|---|
Number of content successfully uploaded on following parameters:
| To have clear view and understanding about the content being uploaded for a textbook and subsequently for a program. It would help to achieve target driven contribution objectives. | |
Validations
Prerequisite for bulk upload:
- Textbook for which the bulk upload is being done must be in draft state.
- A textbook must not be published unless it has any of the linked content in draft state. It should through an error mentioning "Kindly publish all the linked content".
- Before any validation/processing, space trimming should be done for preceding and trailing value of each cell.
- Validation must be done before the content creation for each row. For example system should read the entire row, in case any mandatory cell value is missing, fail the content creation for that row and display with error message in status report.
Srl. No. | Error / Exception | Expected Handling |
---|---|---|
Validations at the time of bulk sheet upload (Results in Validation Errors) | ||
In case any mandatory column is missing, validation error should be thrown. Mandatory columns: Name of the content, Audience, Author, Copyright, Icon, File Format, File path, content type, Level 1 Textbook Unit | Error Message to Display: "Following mandatory columns are missing in input sheet: XXX, YYY, ZZZ." | |
Number of content in input sheet should not be more than 3000. | Error Message to Display: Input sheet should not have more than 3000 content. | |
Validations while processing each row for creating each content (Results in Content Creation Failure) | ||
In case already successfully uploaded content is being uploaded again. Duplication of content shall be checked on the basis of following parameters: Content Name | System should fail the upload of such content with following error message: "Duplicate Content" | |
Validation regarding mandatory fields should be checked while processing each row, in case cell value is missing fail that creation of that content | Error message should be displayed in cell of the column "Reason For Failure" as: "Following mandatory fields are missing: XXX, YYY." | |
Videos should be in mp4/WebM format only. | Error message should be displayed in cell of the column "Reason For Failure" as: "Invalid video format" | |
Each content should not be more than 50 mb. | Error message should be displayed in cell of the column "Reason For Failure" as: "File size is more than 50 MB" | |
Icons and files to be put in google drive and to share google drive links in the respective field. Please ensure Google Drive links are having view access to all permissions. | Error message should be displayed in cell of the column "Reason For Failure" as: "Error while accessing file path google link" OR "Error while accessing icon google link" | |
Input sheet should not have two content with same following values: Content Name | In case already created content is found again in further rows of the same input sheet, treat it as duplicate and display following error as reason for failure: "Duplicate Content" | |
Multiple contents in one single row is strictly not allowed. Only one content must be shared in one row. | Error message should be displayed in cell of the column "Reason For Failure" as: "Multiple content values in a single row" | |
Topic field values should follow the framework/taxonomy of the tenant. | Error message should be displayed in cell of the column "Reason For Failure" as: "Invalid Topic" | |
Image icon should not be more than 1 mb and must be in png or jpeg format | Error message should be displayed in cell of the column "Reason For Failure" as: for icon image size: "Image icon size exceeding 1 mb" for icon image format: "Icon image should be in png/jpg/jpeg" | |
Use Case 2: Creation of interactive practice questions and linking to ETBs under program scope
Currently interactive practice questions (MCQs, FTB etc) can be created and published by content editor through work space. We are heading towards program driven content contribution approach where we look forward to create such interactive content under program scope. This use case defines creation, review and linking of interactive contents to textbook under program. User having contribution role for a program can create such content. User having review role for a program can review such content. Upon successful review and acceptance, content shall be published and linked to respective section of textbook.
Prerequisites:
- User with contributor rights can contribute to program. She must be given contributor rights explicitly.
- User with reviewer rights can review the content for a program.
- Program, scope of the program, Textbooks set up for contribution & valid user creation for contribution and review should have done prior to contribution.
- Textbook for which contribution is happening , must be in draft state.
- A textbook must not be published if it has any of the linked content in draft state. It should through an error mentioning "Kindly publish all the linked content".
- Once contribution editor is opened under a program, it should only display program scope values for medium, grade and subject.
Overall Process Workflow
The over all workflow process could be broadly viewed in two parts 'contribution' and 'review'.
User Story 1: Contributor logs in to Diksha & select the textbook for contribution
Main Scenario: User to select the designated textbook for which the contribution has to be made
Srl. No. | User Action | Expected Result |
---|---|---|
Authorized user access Diksha portal | Diksha portal opens | |
User enters valid credentials | sign in to Diksha portal state tenant page | |
User clicks on "Contribute" | Program list page opens which has all the programs created for the state. | |
User selects required program | User lands on the textbook page. Page has all the books displayed under program scope. | |
User selects the required textbook | Textbook structure (TOC) page opens which has contribution (Add/contribute) option for each node |
Exception Scenarios
Srl. No. | Error / Exception | Expected Handling |
---|---|---|
In case user does not has contributor right for any of the program | User will not see "Contribute" option on Diksha tenant home page on top | |
In case user does not has access to other programs | Do not display those program at all. |
User Story 2: Select interactive content type from content platter to contribute
Main Scenario: User to select which type of content she wants to contribute. In this case it is interactive content.
Srl. No. | User Action | Expected Result |
---|---|---|
Upon reaching on textbook level. Option available for each node to "Contribute". User clicks on it. | A dialogue box opens to select which type of content user willing to contribute. This platter has only those type of content types which are defined for this program scope. The content types are:
| |
User selects "Interactive Practice Content" | Editor opens to allow user to create content. This is mapped to ECML mime type. |
User Story 3: Content creation and send for review
Main Scenario: Contributor creates content in editor, saves it and sends for review
Srl. No. | User Action | Expected Result |
---|---|---|
When user clicks on "Interactive Practice set" | Content Editor is opened. User can create an ECML content through content editor (all functionality as supported by current content editor). | |
User clicks on 'save' | Content is saved with the corresponding content type and linked to corresponding textbook section. | |
User clicks on "Send for review" | Saved content is sent for review | |
User closes the content editor | User returns to the contribution page of the program. |
User Story 4: Reviewer logs in to Diksha & select the textbook for review.
Main Scenario: User to select the designated textbook for which the review has to be done.
Srl. No. | User Action | Expected Result |
---|---|---|
Validated user with reviewer rights access Diksha portal | Diksha portal opens | |
User enters valid credentials | sign in to Diksha portal state tenant page | |
User selects required program | User lands on the textbook page. Page has all the books displayed under program scope. | |
User selects the required textbook | Textbook structure (TOC) page opens which has all the contents contributed for each node |
Exception Scenarios
Srl. No. | Error / Exception | Expected Handling |
---|---|---|
In case user does not has reviewer right for any of the program | User will not see "Contribute" option on Diksha tenant home page on top. Although name suggest as contribute but it is also same option for reviewer to reach out to designated textbook to review its content. | |
In case user does not has access to other programs | Do not display those program at all. |
User Story 5: Review of contributed content
Main Scenario: Reviewer accepts/rejects the content and provide remarks for rejection only.
Srl. No. | User Action | Expected Result |
---|---|---|
On textbook level, reviewer can filter the contents to be reviewed by selecting chapter from drop down. | Upon selecting the chapter in drop down, only those contents should be displayed which are contributed to that chapter. | |
Reviewer selects content to be reviewed | Content detail page opens | |
Reviewer clicks on preview | Content preview opens | |
Reviewer accepts the content | Content accepted, published and linked to textbook node |
Alternate Scenario
Srl. No. | User Action | Expected Result |
---|---|---|
Reviewer rejects the content | Dialogue box opens to capture the reviewer's remark | |
Reviewer enters the remarks and submit | Content rejected and remark sent to contributor. |
Exception Scenarios
Srl. No. | Error / Exception | Expected Handling |
---|---|---|
Reviewer rejects the content without remarks | Error message displayed that providing remark for rejecting the content is mandatory. |
Localization Requirements
NA
Telemetry Requirements
Event Name | Description | Purpose |
---|---|---|
User log in to Diksha | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
User click on "Contribute" | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
User click on any of the program | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
User click on any of the textbook under program | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
User click on "Contribute" button on textbook level | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Content type selection from content platter | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
User click on 'save', 'send for review' button in editor | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Reviewer click on content to review it | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Reviewer click on 'preview' button | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Reviewer click on Accept/Publish button | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any | |
Reviewer click on Reject/Request Change button | Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if any |
Non-Functional Requirements
Performance / Responsiveness Requirements | Load/Volume Requirements | Security / Privacy Requirements |
---|---|---|
Follow the Diksha standards for performance and responsiveness in terms of event response and page load. | As mentioned in exceptional scenarios for user stories to allow authorized and valid user to access the system. | |
Impact on other Products/Solutions
Product/Solution Impacted | Impact Description |
---|---|
View of a textbook under work space which is open for contribution in a program | Only textbook owner/creator can view the textbook under work space. Textbook should display all the contents which have been contributed, reviewed & published and linked to textbook node. Textbook should not display any content which although has been contributed for the textbook in any of the program but still pending for review. |
Key Metrics
Srl. No. | Metric | Purpose of Metric |
---|---|---|
Number of content contributed, accepted, rejected on following parameters:
| To have clear view and understanding about the content being uploaded for a textbook and subsequently for a program. It would help to achieve target driven contribution objectives. | |
Validations
. | Error / Exception | Expected Handling |
---|---|---|
User does not has content contributor rights | "Contribute" option will not be displayed on state home page after Diksha log in | |
User does not has program access as a contributor or reviewer | Program will not be displayed at all | |
In case textbook has linked content in draft state and user try to publish the textbook | Error message should be displayed that "Unpublished contents are linked to textbook". | |
In case textbook is in publish state and is in scope for state program. | Textbook instance shall not be available under program for contribution. | |
Content sent for review, user wants to make changes in it. | Content which are in draft state, can only be edited. Once sent for review or published can not be edited. | |