A course can consist of multiple activities and these activities can be tracked to indicate a users progress within the course. Each activity (when successfully completed) will send a value back to the database and periodically, a background process (cron) will check for these database values being updated.
When an activity has been marked as 'completed' by this background process, a 'tick' will be shown next to the activity and the course card will update with the users percentage progress in the course. A Badge can be awarded (optional) for successful completion of the activity.
A further background process will check periodically to see if ALL required activities in the course have been completed and will update the course card to show completed and again a Badge can be awarded if required. The attached pdf document shows an example course containing a number of different activities and how these feed into the database and the completion crons.