Is it possible to create courses that open and close based on competence in a prior unit? Our RTO doesn't have term dates and there isn't a time limit or assignment due dates.
This functionality does not exist in the native Canvas product. You can have prerequisites on modules within a single course, but not a course as a prerequisite for another course.
There are a couple of ways that we handle this at our institution.
The first way is with our orientation course. We have an orientation course that students must complete before they get into their real courses. Once the orientation course is completed, we add them to the next course. There's some trickery involved, but in your case it may be simpler so I'm not going into those details.
What we have done is identified a criteria that indicates success in a course. Every 20 minutes we use the API to poll that course and look for students who have completed it. We then send the enrollment data to get them into the next course.
There are a couple of ways you can make that transition to the next course quicker if you need to. It may be acceptable to say "You'll have access to the course tomorrow morning." One of those ways is to have an LTI button that they click on as their final act in the first course. That could make the API calls to remove them and move them to the next course. In our case, we don't want students to get a "You're not welcome here anymore" type message from Canvas, so we don't automatically remove them, we just write the information to a database so that we know they have completed it. The scan every 20 minutes is because not all students click the link that says "Click here to finish the course" and because we handle enrollments through SIS imports, not through the API. The second way you could speed up things is to use Canvas Live Events and watch for when students complete the course. At InstructureCon at the end of July, we saw new ways coming that would allow people to get notifications in real-time when something happens, but the Canvas Live Events is the primary way right now.
The second way we handle this sequential course process doesn't require any extra programming. We have a fast-track welding where students work through the sequence at their own pace, moving on to the next course as soon as they finish one course. When the instructor puts a grade in for the first course, they enroll the student in the next course. Our regular SIS imports pick up the new enrollment and adds them to the next course in the sequence.
Retrieving data ...