Make progressive online programs

I would like to know if there is a way to lock online programs unless the user completes certain conditions. For example, I want a site where users can access different programs depending on their current badge, the idea is to make the learning progressive, so they can’t access other content until they finish the previous one.

Has someone ever done something similar? As currently, this isn’t a feature in the platform.

Would probably have to track progress using the content manager, maybe a bunch of booleans to keep track what is done or not. Then check that to know how much progress the user has made.