...
Action | Progress |
---|---|
Rahul opens the “single-digit-addition” content after going into the course “class-1-maths” when batch-1 is active | Complete |
Rahul opens the “single-digit-addition” content after searching for it | Not Started |
batch-1 has expired and Rahul has rejoined batch-2 and opened the content “single-digit-addition” | Not Started |
Pros
User experience is straight forward and the clients Simpler logic to implement within clients as they do know the context in which the user is opening the content
No extra actions or need for complex business rules either or client or server
Cons
Carry Forward Mode
...
There might be cases where a program is launched with a course which the user is already part of or completed. The user needs to redo the entire course again
User experience will be complex if the user sees two courses (one within a program and another outside of the program). The user might complete the course assuming it is part of program and would probably realize that he hasn’t taken it in the context of the program
There would be multiple steps required by user to reach a content within a program. Will make the discovery and browsing experience complex.
Carry Forward Mode
Any content or collection consumption is tracked at its level only and is carry forwarded into any context. This is the expected mode of SunbirdCB. In this mode there are two sub-modes as well:
Full Carry Forward Mode
...
In this mode, any content or collection that is tracked, is copied over into context based on the business rules configured.
Example Use-case
Rahul Let’s assume the following business rule:
An user content progress is copied into a course or a program if the user has completed the content in the last 3 months or within the program duration
Copy All Mode
Rahul completes content “single-digit-addition”. “single-digit-addition” is added as part of course “class-1-maths”. Rahul joins the batch “batch-1“ within the course “class-1-maths”-1 of course “class-1-maths”. Rahul also completes “double-digit-addition” as part of “class-1-maths“. Rahul hasn’t started “triple-digit-addition“ as part of the course.
Entry in DB
user_id | collection_id | context_id | content_id | status |
---|---|---|---|---|
Rahul | single-digit-addition | single-digit-addition | single-digit-addition | 2 |
Rahul | class-1-maths | batch-1 | single-digit-addition | 2 (copied) |
API responses for various other actions done by the user:
Action | Progress |
---|---|
Rahul opens the “single-digit-addition” content after going into the course “class-1-maths” when batch-1 is active | Complete |
Rahul opens the “single-digit-addition” content after searching for itNot Started | Complete |
batch-1 has expired and Rahul has rejoined batch-2 after 1 month and opened the content “single-digit-addition” | Complete |
batch-1 has expired and Rahul has rejoined batch-2 after 3 months and opened the content “single-digit-addition” | Not Started |
Rahul opens the “double-digit-addition” content after searching for it | Not Started |
Rahul completes “triple-digit-addition” organically. And opens the content as part of course “class-1-maths” | Complete |
Pros
Move Mode
In this mode, any content or collection that is tracked, is moved over into context based on the business rules configured.
Example Use-case
Rahul completes content “single-digit-addition” as part of batch “batch-1“ within the course “class-1-maths”
...