Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

...

Question metadata which has some differences from the QuML specs are:-

  • responseDeclaration

  • media

responseDeclaration

Currently, the responseDeclaration is stored in the below format but maxScore is not allowed in it and   outcomes property is not allowed inside correctResponse

...

Instead of keeping maxScore and outcomes in responseDeclaration we can store maxScore in outcomeVariables outcomeDeclaration as below:

Code Block
"outcomeVariablesoutcomeDeclaration": {
    "maxScore": {
      "maxScorecardinality": "single",
      "type": 1,"integer",
      "defaultValue": 3
    }
  },

We will not store outcomes.score inside correctResponse because maxScore and outcomes.score holds the same value.

For newly created single select MCQ question responseDecleration and outcomeVariables outcomeDeclaration will be stored in the below format:

Code Block
"responseDeclaration": {
    	"response1": {
		
      "cardinality": "single",
		
      "type": "integer",
		
      "correctResponse": {
			        "value": "0"
		},
		 2
      },
      "mapping": [
        {
			"response
          "value": 0,
			"outcomes": {
				2,
          "score": 1
			}
		}]
	}
},
"outcomeVariables 3
        }
      ]
    }
  },
  "outcomeDeclaration": {
    "maxScore": {
      "cardinality": "single",
      "type": 1,
"integer",
      "defaultValue": 3
    }
}

For multi-select MCQ, responseDecleration and outcomeVariables outcomeDeclaration will be in the below format:

Code Block
"responseDeclaration": {
    "response1": {
 
      "cardinality": "multiplesingle",
 
      "type": "integer",
        "correctResponse": {
            "value": [02, 1],
 
      },
 
      "mapping": [{
        {
     "response": 0,
              "outcomesvalue": {
   2,
            "score": 1
    0.5
         }
            },
  
         {
              "responsevalue": 1,
   
          "outcomesscore": {0.5
        }
      ]
"score": 1   }
  },
  "outcomeDeclaration": {
    }"maxScore": {
      "cardinality": "single",
   }   "type": "integer",
    ]  "defaultValue": 1
 } }, "outcomeVariables": {}
  "maxScore": 2,
}},

We will store the maxScore inside the outcomeVariables outcomeDeclaration property for new question creation using v2 API.

  • No Data Migration (Recommended)

    • We will do these changes as part of the v2 API and will give the data in the above format.

    • If a user edits the old question using v2 API, We will store maxScore inside the outcomeVariables outcomeDeclaration and remove the maxScore from the responseDeclaration.

  • Data Migration (Not Recommended)

    • We can do the data migration for the old questions and update the question metadata with the format mentioned above.

    • This solution is not recommended because, with the migration of old questions, the old mobile app will break.

...

  • The player will check if the question is having the outcomeVariables outcomeDeclaration in the metadata of the question and what’s the maxScore value present in it.

  • If the outcomeVariables outcomeDeclaration property is found then the player will use it as is it.

  • If the question does not have the outcomeVariables outcomeDeclaration property in the metadata then the player will look for the maxScore property in the responseDeclartion.

media

Currently, Question metadata contains media in the below format:

...

Editor Changes:
  • Update QuML specs (Recommended)

    • If we can update the QuML spec then change will not be required in the editor and player.

  • No Data Migration (Recommended)

    • If we are not updating the QuML specs then we have to do the following changes:

      • For the new question creation, we will store the media in a new format using v2 API.

      • If the user edits the old question using v2 API, we will check if the type is present in the media object, and convert it to mediaType while editing the question.

  • No migration (Not Recommended)

    • We can do the data migration for the old questions and update the question with the above-mentioned format.

    • This solution is not recommended because, with the migration of old questions, the old mobile app will break.

...

QuestionSet metadata which has some differences from the QuML specs is:-

  • timeLimits

timeLimits

Time limits are currently being stored in the question set metadata as below:

...

Editor Changes:
  • No Data Migration (Recommended)

    • For the new question creation, we will store the timeLimits in a new format using v2 API.

    • If the user edits the old question using V2 API, we will check for the timeLimits if it's present in the old format we will convert it to the new format on save.

  • Data Migration (Not Recommended)

    • we can do the data migration for the old questions and update the question with the above-mentioned format.

...