That’s a neat first solution for step 2 I think! I was thinking of various ways how to do the optimization, but this might be the easiest first attempt. Just ask the users to make a list sorted by their priority, and then go in rounds, kinda like NHL draft ![]()
There are some additional quirks though: your list might look like this:
- Maths 101 on Monday
- Maths 101 on Wednesday
- Maths 101 on Friday
- …
^ coz you simply need Maths 101. And this way you might end up with 3 enrolments and unnecessarily blocking 2 slots. So I’d need to add some more logic e.g. to skip 2 and 3 if 1 was already successful, etc.
But it gets more complicated. Your list might be:
- Maths on Monday 10:00
- Maths on Tuesday 10:00
- English on Wednesday 10:00
- English on Monday 10:00
^ if only 1 and 4 succeed and 2 was automatically skipped, you’re screwed…






















