When a logged in user views a course make sure to store this information with an asociation to their user account. So you have something like account 1-* view 1-1 course, then you’ll be able to retrieve and display this when the user logs in again. Store this by creating a microflow to open the course for view that will contain the logic to create/ update the view entity data.
For the completed course or progress the implementation is similar to that described above.