ANU Timetable Planner

ANU’s own timetable/class-selection tools are hard to scan and compare when you’re just trying to pick a tutorial or lab and see if it clashes with something else. This is a small slice of that problem: a page that lists a handful of courses, lets you pick a class for each one, tells you immediately if two of your picks overlap, and remembers your choices.

Demo data: the seeded courses, class options, days and times are invented for this prototype. They are not pulled from any real ANU timetable and shouldn’t be read as current or official ANU class information — this is a prototype of the interaction, not a feed of real enrolment data.

The core flow

  1. Each course shows its tutorial/lab options as a group of radio buttons.
  2. Picking one and pressing Select saves it and re-renders the page.
  3. If your saved pick overlaps another course’s saved pick on the same day, both courses show a plain-text banner naming the clashing course and time — conflicting picks are still allowed to save, they’re just flagged, since a real student might accept a clash on purpose (e.g. a recorded lecture).
  4. Reloading the page, or opening it in another tab, shows the same saved state — selections live in SQLite, not in the page.
  5. Remove clears a course’s saved pick. Selecting again while one already exists replaces it rather than adding a second one.

What good looks like here

Deliberately out of scope

No authentication, no real ANU API integration or scraping, no enrolment functionality, no multi-user accounts. This models one slice of the class-selection experience, not a replacement for ANU’s timetabling system.

Live update

The starter’s Server-Sent-Events channel is kept and repurposed: any tab that selects, changes or removes a class broadcasts over /api/events, and other open tabs reload to pick up the new saved state and conflict banners.