Versions Compared

Key

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

...

Currently, only trackable collections and their progress are stored in user_activity_agg table.
Below is the flow used to show scores in group aggregates.

AssessmentAggregator job changes:

...

activity_type

activity_id

user_id

context_id

agg

agg_last_updated

Assessment

do_123(assessmentId)Course

collectionId

user_123

cb:batch_123

{'score:assessmentId_1': <best attempted score>,
'score:assessmentId_2': <best attempted score>}

{'score:assessmentId_1': ‘timestamp’,
'score:assessmentId_2':: ‘timestamp’}

Group Aggregate API changes:

Create a new v2 endpoint and accept list of activityIds in the input and response is based on the activityId

Request:

...

Implementation steps:

  • Read the best score from assessment_aggregate table using courseId, userId, batchId and contentId from the event

  • Partial update the agg and agg_last_updated columns in user_activity_agg

Group Aggregate API changes:

The response contains the score aggregates also if the collection contains self assessments.

Response:

Code Block
{
    "id": "api.group.activity.agg",
    "ver": "v2v1",
    "ts": "2021-04-0714 0517:5349:3230:742782+00000530",
    "params": {
        "resmsgid": null,
        "msgid": "62ae69c970b89413-edf7fe1f-4486482a-bbfcb92a-c84454add954e27d4af0ae4f",
        "err": null,
        "status": "success",
        "errmsg": null
    },
    "responseCode": "OK",
    "result": {

   "assessmentId_1": {       "activity": {
            "id": "assessmentId_1collectionId",
            "type": "AssessmentCourse",
            "agg": [
                {
                    "metric": "scoreenrolmentCount",
                    "lastUpdatedOn": 15966477006131618390479814,
                    "value": 1 <totla number of enrolments>
                }
            ]
        },
        "groupId": "b0c4a645-807e-41c7-972e-5c48c5b5e5e7groupId",
        "members": [
            {
                "agg": [
            {        {
        "metric": "score",               "valuemetric": 20"completedCount",
              "lastUpdatedOn": 1596647700613         "value": 2,
  }           ],           "namelastUpdatedOn": "Creation",
 1596647700613
        "role": "admin",           "status": "active",
   },
       "createdBy": "874ed8a5-782e-4f6c-8f36-e0288455901e",           "userId": "874ed8a5-782e-4f6c-8f36-e0288455901e" {
        }       ]     },    "metric": "score:assessmentId_21": {,
      "activity": {         "id": "assessmentId_2",
        "typevalue": "Assessment"10, <best attempted score>
     "agg":  [           {      "lastUpdatedOn": 1618390479814
     "metric": "score",             "lastUpdatedOn": 1596647700613},
            "value": 1        {
  }         ]       },       "groupIdmetric": "b0c4a645-807e-41c7-972e-5c48c5b5e5e7",
  score:assessmentId_2",
   "members": [         {           "aggvalue": [20, <best attempted score>
         {               "metriclastUpdatedOn": "score",1618390479814
              "value": 30,     }
         "lastUpdatedOn": 1596647700613      ],
      }           ]"name": "",
          "name": "Creation",           "role": "admin",
                "status": "active",
                "createdBy": "874ed8a5-782e-4f6c-8f36-e0288455901euserId",
                "userId": "874ed8a5-782e-4f6c-8f36-e0288455901e"userId"
            }
      ]  ]
  }   }
}