ANU course picker

ANUHub makes you add courses one at a time: press add, search, confirm, then start again for the next one, all inside a cramped panel. This is the slice of course selection I wish existed instead: one roomy page where you search, tick as many courses as you want, and enrol in all of them with a single button. Your enrolments are saved, so they’re still there when you come back.

What good looks like here

Good means picking a semester’s courses takes one confirm, not one per course. I compared it against the ANUHub flow I actually use every semester, and against the Programs and Courses site, which is hard to learn but shows a lot of information at once. That’s what I wanted here: room to read a course before you pick it.

The decisions that came out of that:

What’s enforced by tests (spec/enrolment.test.ts): enrolling in several courses in one request, and those enrolments surviving a reload; no double enrolments; dropping a course; ignoring fake course codes; the four-course limit, including refusing an over-limit batch as a whole and saying why; the labelled search box, and Enter in it never enrolling you; and enrolled courses not being pickable again.

What’s a judgement call: whether this is actually better than ANUHub, and whether the page feels roomy rather than cramped. That’s for the crit.

What I chose not to build

Prerequisites. This was the hardest thing to leave out, because ANU does block you from courses you haven’t met the prerequisites for. Doing it properly needs a record of what you’ve passed, accurate prerequisite data for every course, and rules like “this course or that one”. Doing it badly would block real students from courses they’re allowed into, which is worse than not checking at all.

Underloading. Taking fewer than four courses (after a summer course, say) needs approval in the real system, so the app shows how far you are from four but doesn’t try to model the approval.

Also out: logging in, choosing a program and checking its requirements, timetable clashes, semesters and class capacity. Each is a real part of course selection, but none of them is the add, search, confirm loop this prototype is about. Timetable and Grades appear in the header only to show where this slice would sit; they aren’t built. There’s one anonymous student, and the course list is a small set of real ANU courses.