Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3
outlinetrue

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:

  1. Upload existing content (pdfs, videos or html)
  2. Reuse existing DIKSHA content
  3. 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:

  1. Content contributors  do not have the right context when they create or upload content, resulting in content that may not be very relevant.
  2. 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.
  3. 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: 
    1. As a content contributor I want to contribute relevant content for the textbooks under program scope.
    2. As a content reviewer I want to review the content contributed for textbook under program scope.
    3. 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:

  1. A state sets up an ETB program and defines the scope from back-end (same as existing functionality for CBSE).
  2. The state configures textbook creators, textbook reviewers, content contributors and content reviewers for the program through back-end.
  3. Textbook creators create or add ETBs to the program scope (as defined in the story:
    Jira Legacy
    serverSystem JIRA
    serverId2207a759-5bc8-39c5-9cd2-aa9ccc1f65dd
    keySB-16761
    ). As long as mentioned story is not implemented, it will be done form back-end.

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: User access Diksha & selects required textbook under program for which bulk

: 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 will enable a new role called "Bulk Content Publisher". A user with this role can perform the following actions:

  1. Bulk upload content - This will create all content that is bulk uploaded and as well as publish it
  2. Link content to a given Textbook - Link bulk uploaded content to Textbook sections

User Story: User accesses 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

1

User enters Diksha URL

Diksha page opens with sign in option.

2

User enters valid credentials

User sign in and land on tenant home page

3

User clicks on "Contribute"

Program list page opens which has all the programs created for the state.

4

User selects required program

User lands on the textbook page. Page has all the books displayed under program scope.

5

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

1In 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 topIn case user does not has access to other programsDo not display those program at all.
User Story 2

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

1

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

"Start Bulk Upload" - This option will be disabled by default. It will be enabled only once a bulk csv file is uploaded.

"Close" - The option is enabled for user close the bulk upload dialog

Alternate Scenario: User selects bulk upload option, after completing a previous bulk upload

Srl. No.

User Action

Expected Result

User clicks on "1

In Textbook detail page, user clicks on "Bulk Upload Content"

Dialog box opens with following options

"Upload File" - The option is enabled for user to upload bulk csv file

"Download Sample File" - The option is enabled for user to download sample file

"Last Upload Status"

This should display the upload - Shows status of the last upload.previous bulk upload process with following fields:

  1. Status
  2. Start Time

  3. End Time

  4. Total number of content

  5. Content published and linked

  6. Content failed

  7. Content

    to be processedLink

    In progress (will be 0 as the bulk upload process is complete)

  8. Link to download status report "Download Report"

For the first time it would not be there since there is no previous bulk upload.

Exception Scenarios

Srl. No.Error / ExceptionExpected HandlingIf 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 

"Start Bulk Upload" - This option will be disabled by default. It will be enabled only once a bulk csv file is uploaded.

"Close" - The option is enabled for user close the bulk upload dialog

Alternate Scenario: User selects bulk upload option, while a bulk upload process is in progress

Srl. No.

User Action

Expected Result

User populates the bulk upload file in the required format in her local systemUser selects ""Upload File"Dialogue box opens with an option to select and upload csvUser 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:

Upon clicking on it, user should be prompted to again pick up file from local machine.
Srl. No.User ActionExpected Result
In dialogue box, After selecting the file from local device, an option should display "Change File".  

1

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 of previous bulk upload process with following fields:

  1. Status
  2. Start Time

  3. End Time

  4. Total number of content

  5. Content published and linked

  6. Content failed

  7. Content In progress (will be 0 as the bulk upload process is complete)

  8. Link to download status report "Download Report"

"Start Bulk Upload" - This option will be disabled by default. It will be enabled only once a bulk csv file is uploaded.

"Close" - The option is enabled for user close the bulk upload dialog

Exception Scenarios

Srl. No.

Error / Exception

Expected Handling

In case file contains validation errorsBulk 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.
1

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 upload process starts successfully

  1. User should be redirected to bulk upload status dialogue box, where user should see the following fields:
    1. Start Time
    2. End Time - Currently there wont be end time since upload still in progress
    3. Total number of content
    4. Content published and linked
    5. Content failed
    6. Content to be processed
    7. Link to download status report "Download Report"
    8. "Refresh" button to update the processing progress. Upon clicking on it, numbers for the above fields shall be updated.
  2. Status report would have the following additional fields (apart from input bulk sheet fields) for each row (representing each content)
    1. Upload Status: Success, Fail, In progress
    2. Content Do_Id: If success, than do id of the created content
    3. Reason of Failure:  If fail, than reason of failure. In case there are multiple reasons for failure, display each of them by numbering them in the same cell for each row.

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:

    1. Completed : When there is no content failure in status report 
    2. Completed with errors : When there are content which got failed because of some error. In this case user to check the details and download status report.

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.

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

Exception Scenarios

Srl. No.Error / ExceptionExpected HandlingWhile 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 NameDescriptionPurposeClick 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 anyClick on "Browse" button in upload dialogue box to upload input fileParameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyClick on "Start Upload" input fileParameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyDownload of sample template fileParameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyClick on "View Report" Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyDownload of "Status Report"Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyClick 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 RequirementsLoad/Volume RequirementsSecurity / Privacy RequirementsEvery 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 ImpactedImpact DescriptionCurrent bulk upload sheetUpdate 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 ImpactedImpact Description

Key Metrics

Srl. No.MetricPurpose of Metric

Number of content successfully uploaded on following parameters:

  • Total number of bulk upload contents for a Textbook
  • Total number bulk upload contents for a subject under program scope (can have more than one textbook)
  • Total number bulk upload contents for a Grade (can have multiple subject and multiple textbook)
  • Total number bulk upload contents for a program
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:

  1. Textbook for which the bulk upload is being done must be in draft state.
  2. 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".
  3. Before any validation/processing, space trimming should be done for preceding and trailing value of each cell.
  4. 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 / ExceptionExpected 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:

  1. User with contributor rights can contribute to program. She must be given contributor rights explicitly.
  2. User with reviewer rights can review the content for a program.
  3. Program, scope of the program, Textbooks set up for contribution & valid user creation for contribution and review should have done prior to contribution.
  4. Textbook for which contribution is happening , must be in draft state. 
  5. 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".
  6. 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'. 

Image Removed

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 ActionExpected ResultAuthorized user access Diksha portal Diksha portal opensUser enters valid credentials sign in to Diksha portal state tenant pageUser clicks on "Contribute"Program list page opens which has all the programs created for the state.User selects required programUser lands on the textbook page. Page has all the books displayed under program scope.User selects the required textbookTextbook structure (TOC) page opens which has contribution (Add/contribute) option for each node

Exception Scenarios

Srl. No.Error / ExceptionExpected HandlingIn case user does not has contributor right for any of the programUser will not see "Contribute" option on Diksha tenant home page on topIn case user does not has access to other programsDo 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 ActionExpected ResultUpon 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:

    1. Explanation Content
    2. Interactive Practice Content
    3. Subjective Practice Content 
    4. Lesson Plan
    5. Learning Outcomes
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 ActionExpected ResultWhen 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 reviewUser closes the content editorUser 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 ActionExpected ResultValidated user with reviewer rights access Diksha portal Diksha portal opensUser enters valid credentials sign in to Diksha portal state tenant pageUser selects required programUser lands on the textbook page. Page has all the books displayed under program scope.User selects the required textbookTextbook structure (TOC) page opens which has all the contents contributed for each node

Exception Scenarios

Srl. No.Error / ExceptionExpected HandlingIn case user does not has reviewer right for any of the programUser 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 programsDo 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 ActionExpected ResultOn 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 reviewedContent detail page opensReviewer clicks on previewContent preview opensReviewer accepts the contentContent accepted, published and linked to textbook node

Alternate Scenario

Srl. No.User ActionExpected ResultReviewer rejects the contentDialogue box opens to capture the reviewer's remarkReviewer enters the remarks and submitContent rejected and remark sent to contributor.

Exception Scenarios

Srl. No.Error / ExceptionExpected HandlingReviewer rejects the content without remarksError message displayed that providing remark for rejecting the content is mandatory.

Localization Requirements

NA

Telemetry Requirements

Event NameDescriptionPurpose
User log in to DikshaParameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyUser click on "Contribute" Parameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyUser click on any of the programParameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyUser click on any of the textbook under programParameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyUser click on "Contribute" button on textbook levelParameters to be captured for this events are: Time stamp, user details, event status (fail/success), Reason for failure if anyContent 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 anyUser click on 'save', 'send for review' button in editor1

User selects "Upload File" option

File browser dialog opens for user to browse and select and bulk csv from her local system

2

User browses selects bulk upload file from local system 

."Start Bulk Upload" button is enabled

3User clicks on "Start Bulk Upload"

System validates the bulk csv is required format and upload process is started Last Upload Status will show the status as In Progress and other fields are updated.

Once Bulk Upload is completed successfully, all the contents are published and linked to the textbook for the respective sections as given in the bulk csv file.

Alternate Scenario: User selects "Download Sample File" option

Srl. No.

User Action

Expected Result

1

In Textbook detail page, user clicks on "Bulk Upload Content"

Dialogue box opens with option "Download Sample File"

2

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

Exception Scenarios

Srl. No.

Error / Exception

Expected Handling

1

In case file format contains errors that are detected before starting of upload process

Bulk Upload dialogue shows the list of validation errors (Refer validation error section in the last of this PRD for detail).

The process is not started.

User corrects the errors in the bulk csv file and click on the "Upload File" option again. User browses and selects the correct bulk csv.

The main flow of this story executes. 

User Story 4: User views "Last Upload Status" section

Main Scenario: User views "Last Upload Status" section of an ongoing bulk upload process

Srl. No.

User Action

Expected Result

1

User upload correct bulk upload csv and starts Bulk Upload process.

Bulk upload process starts

2

While upload is in progress user views the details in "Last Upload Status" section.

  1. User sees the following fields:

    1. Status - This shows the status as "In Progress"
    2. Start Time - The time when the upload process is started

    3. End Time - Currently this will be blank as upload is still in progress

    4. Total number of contents - Total number of content in bulk csv file

    5. Number of contents processed successfully - Contents that have been successfully published and linked to the textbook

    6. Number of contents failed - Contents that had errors while processing

    7. Number of contents yet to be processed - Content that are yet to be processed

    8. Link to download status report "Download Report".

The above status has to be refreshed every 60 secs.

Alternative Scenario: User views "Last Upload Status" section of a completed bulk upload process

Srl. No.

User Action

Expected Result

1

User clicks on "Download Report" option in Last Upload Status section of Bulk Upload Dialog

1. Once upload is complete,  "Upload csv file" button will be enabled. Now user can start a new upload.

2.StatusThere will be two types of complete status

    1. Completed : When there is no content failure in status report 

    2. Completed with errors : When there are content which got failed because of some error. In this case user to check the details and download status report.

3.Till the new upload is started, "Last Upload Status" will show the status of previous upload.


Note: If the bulk csv contains a content that was already created previously, it will be considered as an error with reason as "Duplicate Content".  Hence in such scenario, the status will show "Completed with errors".

Alternative Scenario: User downloads Bulk Upload Status Report

Srl. No.

User Action

Expected Result

1

User opens Bulk Upload Dialog where the last bulk upload process is complete

  1. Status report (in csv file format) is downloaded to users local system
  2. Status report would have the same set of columns as bulk csv along with following additional fields, for each row (representing each content)

    1. Upload Status: Success, Fail, Yet to be processed

    2. Content Do_Id: If success, than do id of the created content

    3. Reason of Failure:  If the status is "Fail", then reason of failure. In case there are multiple reasons for failure, display each of them by numbering them in the same cell for each row.

Exception Scenarios: Bulk upload Process is "Aborted"

Srl. No.

Error / Exception

Expected Handling

1

Bulk Upload process takes more than 24 hours to complete

The upload process is aborted. Last Upload Status section will have following values

  1. Status - This shows the status as "Aborted"
  2. Start Time - The time when the upload process is started

  3. End Time - The time when the process is aborted

  4. Total number of contents - Total number of content in bulk csv file

  5. Number of contents processed successfully - Contents that have been successfully published and linked to the textbook

  6. Number of contents failed - Contents that had errors while processing

  7. Number of contents yet to be processed - Content that are yet to be processed (in this case they are not processed)

Wire frames

Wire frame link: https://projects.invisionapp.com/share/7QST139948N#/screens/374220905 

Localization Requirements

There are no localization requirements for UI. UI is only in English.

However, the Bulk Upload CSV should support values in Indian languages for fields like - Content Name, Description, Textbook Level names, Topics, Keywords etc - where the fields can be in Indian languages. The values are expected to be in Unicode.

Telemetry Requirements

Event NameDescription
Click on button "Bulk Upload" option in Textbook ToC pageParameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id
Click on "Start Upload" option in Bulk Upload dialogParameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id
Download of sample template file option in Bulk Upload dialogParameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id
Click on "Close" button in Bulk Upload dialogParameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id
Download of "Status Report" button in Bulk Upload dialogParameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id
Click on "Last Uploaded File"Parameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id
Start of Bulk Upload Process in the back-endParameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id, number of contents, unique process id
End of Bulk Upload Process in the back-endParameters to be captured for this events are: Time stamp, user id, tenant id, textbook id, program id, number of contents, unique process id, status (completed successfully, completed with errors, aborted)


Non-Functional Requirements

Performance / Responsiveness RequirementsLoad/Volume RequirementsSecurity / Privacy Requirements
Maximum expected time for bulk upload process to complete - 8 hours. 9.6 seconds per content.A bulk csv file can have maximum 1000 contents N/A

Time to complete creation, publish and linking one content:

Average 13 secs Maximum: 30 secs

Concurrency: System should support up to 100 concurrent bulk uploads. Beyond that, it should be scalable by scaling infra



Impact on other Products/Solutions

N/A

Product/Solution ImpactedImpact Description



Impact on Existing Users/Data 

N/A

User/Data ImpactedImpact Description



Key Metrics

Srl. No.MetricPurpose of Metric

  • Total number of bulk upload content requests in given a time period (overall and per tenant)
  • Total number contents that are published through bulk upload in given a time period (overall and per tenant)
  • Total number bulk upload contents for a Grade (can have multiple subject and multiple textbook)
  • Average, Medium, Min and Max time taken for - entire bulk upload process, per content upload
  • % of Bulk upload processes - successfully completed, completed with errors, aborted
  • Average number of times users download status report per bulk upload process
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

General Rules:

  1. Textbook for which the bulk upload is being done must be in draft state.
  2. Before any validation/processing, space trimming should be done for preceding and trailing value of each cell.
  3. 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.  


Error / ExceptionExpected 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 1000. 

Error Message to Display:

Input sheet should not have more than 1000 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:

Combination of Channel, Board, Medium, Grade, Subject Content Name should be unique.

(Note: Channel, Board, Medium, Grade, Subject values are adopted from the values of Textbook)

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."

File format: Validate the given file is in one of the supported formats by the system (all formats supported through "Upload Content" option of individual content)

Error message should be displayed in cell of the column "Reason For Failure" as:

"Invalid file format"

Validate given file format matches with format specified in File Format field. If it doesn't match give error

Error message should be displayed in cell of the column "Reason For Failure" as:

"File doesn't match with the mentioned format"

File Size: 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 correct and having view access to all permissions. Else give error

Error message should be displayed in cell of the column "Reason For Failure" as:

"Unable to access file at google link" OR

"Unable to access file at google link"

Bulk csv sheet should not have two contents 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, jpg/jpeg format

Error message should be displayed in cell of the column "Reason For Failure" as:

for icon image size: "Image icon size is more than 1 MB"

for icon image format: "Icon image is not of png, jpg or jpeg format"

Check Textbook hierarchy as given in "Level" columns exist in the given textbook. If not, give error

Error message should be displayed in cell of the column "Reason For Failure" as:

"Incorrect values in Textbook Levels"

Content Type: Value in Content type field should be one of the values configured in the current program. If not, give error

Error message should be displayed in cell of the column "Reason For Failure" as:

"Incorrect Content Type"

System Error

This is not a validation error. But, if any system error occurs while processing the content, error message should be displayed in cell of the column "Reason For Failure" as:

"System error: <<the error message thrown by the system>>"


Assumptions

  1. :Level columns in bulk csv file contain textbook unit names.
  2. Textbook unit names - There are NO two textbook units with same name and with same hierarchy (levels). In case they are present, system takes the first one to link
  3. Topics and Keywords - More than one topics or keywords are separated by commas. They do not contain commas within them

  4. Through bulk upload process, the content is always linked to the given textbook. NO content is removed from textbook through this process
  5. It is assumed that the textbook for which bulk upload happens is not simultaneously edited using textbook editor during the process. Parallel editing of textbook might delete the linked content through bulk upload
  6. In case a row in bulk csv has more than one validation errors, only the first error detected will be given in the error message field
  7. Bulk upload process does NOT stop if an error occurs in validation of a specific row or during processing of a specific row. It proceeds with other rows.
  8. Board, Medium, Grade, Subject values are taken from corresponding values of Textbook and populated in all the uploaded content.


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:

  1. User with contributor role can contribute to program. She must be given contributor role explicitly within the program.
  2. User with reviewer role can review the content for a program. She must be given contributor role explicitly within the program.
  3. Program, scope of the program, Textbooks set up for contribution & valid user creation for contribution and review should have done prior to contribution.
  4. Textbook for which contribution is happening must be in draft state. 

Overall Process Workflow

The over all workflow process could be broadly viewed in two parts 'contribution' and 'review'. 

Image Added

User Story: 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 ActionExpected 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 programUser lands on the textbook page. Page has all the books displayed under program scope.

User selects the required textbookTextbook structure (TOC) page opens which has contribution (Add/contribute) option for each node

Exception Scenarios

Srl. No.Error / ExceptionExpected Handling

In case user does not have contributor right for one or more programs

The programs list only displays programs in which the user has a role (contributor or reviewer) configured in it.

If the user doesn't have a role in any of the programs, it will display a message "No Programs available"

User Story: 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 ActionExpected 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:

    1. Explanation Content
    2. Practice Content (Interactive)
    3. Practice Content (Subjective)
    4. Lesson Plan
    5. Learning Outcomes

User selects "Practice Content (Interactive)"Content Editor opens to allow user to create content. This is mapped to ECML mime type. 

User Story : User creates content and saves

Main Scenario: Contributor creates content in editor, saves it

Srl. No.User ActionExpected Result

When user clicks on "Practice Content (Interactive)" option from the content platter

Content is created and linked to the textbook. The content will have following attributes:

  1. Name - Untitled
  2. B, M, G, S - As taken from the textbook
  3. Content Type - Practice Content (Interactive)

Content Editor is opened. User can edit the content through (all functionality as supported by current content editor).

"Edit Details" page will show the above values auto-populated and the following fields have to be disabled for edit (user cannot change these values):

  1. B, M, G, S - As taken from the textbook
  2. Content Type - Practice Content (Interactive)

Note:  Practice Content (Interactive) is the display label for the content type: "PracticeContent" defined in the current system.


User clicks on 'Save' Content is saved. 

User closes the content editor

User returns to the Textbook ToC page of the program from which the content editor is launched.

User sees the content row added to the corresponding section in the textbook and is in "Draft" state. There is an "Edit" option (same UI as in the current Program flow)

User Story : User edits content, saves and send for review

Main Scenario: Contributor edits an existing content in editor, saves it and sends for review

Srl. No.User ActionExpected Result

User opens the Textbook ToC page.

User sees the content row added to the corresponding section in the textbook and is in "Draft" state. There is an "Edit" option (same UI as in the current Program flow).


User clicks on "Edit" option

Content Editor is opened. User can edit the content through (all functionality as supported by current content editor).

"Edit Details" page will show the above values auto-populated and the following fields have to be disabled for edit (user cannot change these values):

  1. B, M, G, S - As taken from the textbook
  2. Content Type - Practice Content (Interactive)

Note:  Practice Content (Interactive) is the display label for the content type: "PracticeContent" defined in the current system.


User clicks on 'Save' Content is saved. 

User clicks on "Send for review"

Saved content is sent for review

"Details page" of send for review will show the following fields auto-populated and are disabled for edit (user cannot change these values):

  1. B, M, G, S - As taken from the textbook
  2. Content Type - Practice Content  (Interactive)

User closes the content editor

User returns to the Textbook ToC page of the program from which the content editor is launched.

User sees the content row updated with "Review in Progress" state. There is an "Preview" option (same UI as in the current Program flow).

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 ActionExpected Result


User with Review role in the program signs into DIKSHA portal.
User sees "Contribute" option in the portal page.

User selects the Contribute optionList of available programs are displayed

User selects required programUser lands on the Review page. Page has all the books displayed under program scope.

User selects the required textbookTextbook structure (TOC) page opens which has all the contents contributed for each node

Exception Scenarios

Srl. No.Error / ExceptionExpected Handling

In case user does not have reviewer right for one or more programs

The programs list only displays programs in which the user has a role (contributor or reviewer) configured in it.

If the user doesn't have a role in any of the programs, it will display a message "No Programs available"


User Story 5: Review of contributed content

The functionality of this user story is exactly same as that of the Review flow in current Program

Main Scenario: Reviewer accepts/rejects the content and provide remarks for rejection only

Srl. No.User ActionExpected 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 reviewedContent detail page opens

Reviewer clicks on previewContent preview opens

Reviewer accepts the content

Content is published. 

In the Textbook ToC page of the program user sees the content row updated with "Published" state. There is an "Preview" option (same UI as in the current Program flow).

Alternate Scenario

Srl. No.User ActionExpected Result

Reviewer rejects the contentDialogue box opens to capture the reviewer's remark

Reviewer enters the remarks and submit

Content rejected and remark sent to contributor.

In the Textbook ToC page of the program user sees the content row updated with "Rejected" state. There is an "Edit" option (same UI as in the current Program flow).

Exception Scenarios

Srl. No.Error / ExceptionExpected Handling

Reviewer rejects the content without remarksError message displayed that providing remark for rejecting the content is mandatory.

Localization Requirements

NA

Telemetry Requirements

details, event status (fail/success), Reason for failure if any details, event status (fail/success), Reason for failure if any Accept/Publish button details, event status (fail/success), Reason for failure if any
Event NameDescription


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 anyReviewer click on content to review itid, program id, textbook id, content type
Open Content EditorParameters to be captured for this events are: Time stamp, user Reviewer click on 'preview' buttonid, program id, textbook id, content type
User click on 'save', 'send for review' button in editorParameters to be captured for this events are: Time stamp, user id, program id, textbook id, content type
Reviewer click on content to review itParameters to be captured for this events are: Time stamp, user id, program id, textbook id, content id, content type
Reviewer click on Reject/Request Change 'preview' buttonParameters 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 RequirementsLoad/Volume RequirementsSecurity / Privacy RequirementsFollow 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 ImpactedImpact DescriptionView 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.MetricPurpose of Metric

Number of content contributed, accepted, rejected on following parameters:

  • Total number of contents for a node
  • Total number of contents for a Textbook
  • Total number contents for a subject under program scope (can have more than one textbook)
  • Total number contents for a Grade (can have multiple subject and multiple textbook)
  • Total number contents for a program
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 / ExceptionExpected HandlingUser 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 textbookError message should be displayed that "Unpublished contents are linked to textbook". 
id, program id, textbook id, content id, content type
Reviewer click on Accept/Publish buttonParameters to be captured for this events are: Time stamp, user id, program id, textbook id, content id, content type
Reviewer click on Reject/Request Change buttonParameters to be captured for this events are: Time stamp, user id, program id, textbook id, content id, content type

Non-Functional Requirements

Performance / Responsiveness RequirementsLoad/Volume RequirementsSecurity / Privacy Requirements
Follow the DIKSHA standards for performance and responsiveness in terms of event response and page load.
N/A






Impact on other Products/Solutions

Product/Solution ImpactedImpact 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 displays all the contents which have been published and linked to textbook node.

In case a Textbook has draft content linked to the textbook through Program:

  • When user clicks on "Send for Review" button, display an error message: "This textbook has some contents linked that are not yet published. Please go to "Programs" view and check"

Key Metrics

Srl. No.MetricPurpose of Metric

Number of Interactive Practice Content created, reviewed and published through Programs

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 / ExceptionExpected Handling

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.