Versions Compared

Key

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

...

As badge association is course based property and course object is stored inside Learning Platform. We can update the badge details in course object on every associate/dissociate request. The structure of badgeAssociatedInfo is as follows:-


content
badgeAssociatedInfoList<Map<text, text>>



namedata typeDescription
1issuerIdStringIssues the badge
2badgeIdStringId of the badge
3associationIdStringUniquely identifies the association
4badgeClassImageStringbadge image url
5badgeClassNameStringname of the badge class
6associatedTSString

Timestamp at which badge is associated to the course

7statusboolean

True → Batch created corresponding to the course will be imparted this badge.

False → This badge is no longer associated with course.

There will be at most one status flag of the map inside the badgeAssociatedinfo will be set true for particular course.


For Association Request :-  Iterate over all the badgeAssociatedInfo list from course object and check for status flag as true(if present). Will reset that particular flag to false, adding the new requested badge with status flag as true in course object and update it.

...

We can add badgeId in course_batch table.


namedataTypedescription
badgeIdStringuniquely identifies the badge.


ProsCons
Isolation of the course related info will be maintained with the
KP
LP.We need to iterate over the list for every association/disassociation/batch-creation request.

Proposed Solution 2:


We can store the badge association information in new table course_badge_association. The structure of the table will be :-


namedataTypedescription
courseIdStringuniquely identifies the courseId
badgeIIdStringuniquely identifies the badgeId
issuerIdStringuniquely identifies the issuerId
badgeClassImageStringimage url of the badge
badgeClassNameStringname of the badge
associatedTSTimestampTimestamp at which the badge is associated with the courseId
statusboolean

states badge is currently associated to the course or not.

Needs to be indexed.

updatedTSTimeStampTimestamp at which badge association is updated.


composite primary key :- (courseId, badgeId)

...

On batch creation:-  Get the active badge from course_badge_association table based on (courseId, badgeId, status=true) and impart the corresponding badge information to course_batch table. We can store the badge information in course_batch similar way as we have in proposed solution 1.


ProsCons
We can directly access the current active badge associated with the course without any iteration.Sunbird platform will have the course related information. Hence the isolation of course related info will be compromised.