Versions Compared

Key

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

Use case - Question paper

State SCERT will source the question papers for conducting SAT, Regular interval (Fortnightly, Monthly, etc) Quiz and tests on Diksha. To create the question paper, the state will use Vidyadaan (Prashnavali) to create the question paper (with 2 level review).

...

  1. Create a question paper on Sourcing(Vidyadaan) and Publish it Published on consumption (Diksha) . - With private visibility (- meaning that only authorized users can view it on consumption.)

  2. Authorized Applications make and authenticated API calls get the Content from Diksha that is Private(not visible/ available publicly)

  3. If the Applications have permission to view the question paper and the date on which the request is made lies between the start/end date of the question paper. They get the question paper details.

...

Defining Visibility during project creation

...

Editing visibility at a later time.

...

Design Flow: https://docs.google.com/presentation/d/12JW58Iokn-3IdwifUeWab8F8vPC8HFHqZjkbERtwsLc/edit?usp=sharing

Tech Implementation
Approach 1:

  1. Publish Project

    1. In a published project, the status of QuestionSets remains draft.

    2. In the QuestionSet, questions will be:   

      1. Added and submitted by Contributors(status: Draft, but Review Pending ),

      2. Reviewed by ContributorOrg reviewer(status: Live but Approval pending) and then

      3. Approved and published by SourcingOrg reviewer(status: Live but Approved).

    3. For QuestionSets having all approved questions, we’ll publish the QuestionSet on click of button(Publish Question Set) which will be enabled on the basis of config we’ll pass to category definition API.

    4. An existing key publishQuestionset will be used in category definition which will have boolean values.

      1. API: category/definition/v1/read

    5. On click of button(Publish Question Set), we’ll hit publish API so the status of QuestionSets will become live.

      1. API : questionset/v1/publish/do_id
        It’s an Async API.

  2. Adding Import Button on TOC

    1. After having the status of QuestionSet as live, will show a button “Import QuestionSet” to import it on Ed Portal.

    2. This will be enabled on the basis of the category definition config we used for the button(Publish Question Set) in 1(D).

    3. On click of the button(Import QuestionSet) we’ll hit the import API.
      API: questionset/v1/import

Pros: Use of existing API
Cons: Existing API only allows the QuestionSet having all approved questions

Open questions:

  1. As the publish QuestionSet API is Async, how will we show the Import QuestionSet button.

  2. If the publish QuestionSet API fails, what shall we show there or how should we handle this?

Approach 2: 

...

  1. Importing QuestionSet on Ed Portal

    1. At the time of publishing a project by SourcingOrg Admin, a copy of the QuestionSets will be created at Ed portal as well using import QuestionSet API(New).

      1. Import QuestionSet API will make a copy of QuestionSet having a common key “originalPath” to define relation/reference between both the QuestionSets i.e; original and cloned.

    2. Questions will be added by contributor, reviewed by ContributorOrg reviewer and then SourcingOrg reviewer i.e; complete question journey upto approval pending will be on Vdn portal only.

  2. Importing Questions on Ed

    1. At the time of approval from SourcingOrg Admin/reviewer the question will get directly published at Vdn portal and imported at Ed Portal using import Question API(New).

      1. Import question API will make a copy of approved questions from Vdn portal and import them on Ed portal.

    2. originalPath key will be helpful in adding the approved questions in the correct QuestionSet.

Requirements: 2 New API

  1. To import QuestionSets of a project from the Vidyadan portal to the Ed portal while publishing it.

  2. To import all the approved questions to the imported project on Ed Portal.

...

*This document has been updated on 16th June, the comments might be outdated for an earlier version of this document.