ANU course planner

The ANU system that reliably ruins my week is course selection: working out, from what I’ve already done, which of a Computing major’s requirements are still open and what to enrol in next. This is that, as a full-stack slice — pick a major, list completed and in-progress courses, and get back a requirement checklist plus a suggested semester-by-semester schedule, saved to SQLite so it’s still there on a reload.

It deliberately does not model:

What good looks like here

Good means: honest about what it doesn’t model, rather than pretending to be the whole enrolment system. Where the real major page didn’t state something (e.g. neither the Software Development nor the Intelligent Systems major page lists explicit prerequisites, only compulsory/elective unit counts), the tool says so as a flagged assumption on the plan page instead of inventing a prerequisite chain that looks authoritative but isn’t. Elective category “pools” are illustrative course lists, not ANU’s full catalogue — enumerating every COMP course was out of scope for a one-week slice, and the tool says that too when a category’s shortfall runs past its example list.

The mechanically checkable half of that — a plan surviving a reload, the create-flow actually reaching the database, a 404 for an unknown plan — is enforced in spec/course-planner.test.ts. Whether the recommendation logic itself is useful (the right things flagged as missing, a sane semester packing) is a judgement call for the crit, not something a test can hold.