Versions Compared

Key

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

...

In this step the reviewer goes through the question statement, the options of the question (only in case of MCQ questions), the correct answer of the question & the tags added to the question (topic, competency, marks & skill)

2. The reviewer opens a Google sheet (sample) shared with them and marks the questions against the specified parameters

In this step, the reviewer pastes the question statement from Prashnavali to the given google sheet, and gives a score (out of 5) for all the parameters specified in the sheet. Based on a pre-defined logic a total score is generated for the question and ‘Approved’ or ‘Rejected’ is displayed on the google sheet

3. The reviewer goes back to Prashnavali and marks the question as ‘Submit for approval’ or ‘Request changes’ based on the result from step 2.

4. The admin goes through the filled sheets in order to ensure that each question undergoes a quality check before approval

In the above mentioned steps, there are 4 major pain points:-

...

  1. Log in to the contribution portal

  2. Go to ‘My Projects’

  3. Open the desired project

  4. Open the desired question set

  5. Open the desired question

  6. Review the question body, options, details, tags

  7. Click on Submit for review

  8. A form opens with the following parameters:- Suitability, comprehensibility, pedagogy and grammar

  9. The reviewer gives scores across each parameter

  10. The reviewer can see a total score

  11. Based on the total score, the reviewer Accepts/Rejects/Requests for change the question

Logic: If total score <=1415, the following message pops-up:- “Please re-evaluate the question for quality, & ‘Submit for Approval’ accordingly”

...

Slide 2-6 attached for wireframes of the solution

Technical solution:

...

  • We’ll use SB-Forms to create quality-check form.

  • The config will be stored in the category definition and

...

Question Schema: We’ll add a new key meta which will store all the information.

{

“Identifier”: “do_id”,

…..

“meta”: {

“comprehensibility”:  “2”,

…..

 }

...

  • rest data is hardcoded in the popup

  • If quality check form exist in category definition then we’ll open the pop-up

  • The value of quality-check form will be stored in question object.

Category Definition:

We’ll add following keys in category definition:

  • isReviewerQualityCheckEnabled: based on the value we’ll enable quality check form
    Possible Values: true/false

  • reviewerQualityCheck: This key will store SB-form config

Code Block
languagejs
{
  "objectCategoryDefinition": {
     ...
     "objectMetadata": {
        ...
        "config": {
            ...
            "isReviewerQualityCheckEnabled": true,
        }
     },
     "forms": {
       "create": {},
       "delete": {},
       "publish": {},
       "review": {},
       "search": {},
       "reviewerQualityCheck": {
          "templateName": "",
          "required": [],
          "properties": [
            ...
          ]
       }
     }
  }
}

Question Schema:

We’ll add a new key of object type reviewerQualityChecks which will store quality-check form information.

Code Block
languagejson
{
   "identifier": "do_id",
    ...
    "reviewerQualityChecks": {
       "comprehensibility":  "2",
       ...
    }
}

Reason for storing reviewerQualityChecks in question schema:

  • Leveraging existing API

  • Avoiding multiple API calls