Due

Due: every ANU deadline on one board

Due is a deadline board for ANU students. Wattle files each deadline inside its own course site, so answering “what’s due next, across everything I’m taking?” means opening four or five courses and doing the sorting in your head. Due is the one view Wattle doesn’t have: every deadline from every course in a single list, soonest first, grouped by how close it is, with the share of the grade riding on it written next to it. You add a deadline once (course code, what’s due, when, weight) and it stays on the board, in SQLite on the app’s volume, until you tick it off or delete it.

The board with deadlines from four courses, grouped by urgency

What good looks like here

Good here means the board answers two questions at a glance: what bites next and how much it’s worth. Everything else was cut against that.

What I chose not to build: accounts and sign-in (it’s one board per deployment, which is honest for a prototype and keeps the slice to the part that annoys me), importing from Wattle (no API a student can reach), and reminders or notifications (the board is the reminder). Recurring deadlines, like weekly labs, are added one at a time.

What’s enforced and what’s judgement: spec/deadlines.test.ts drives the built server over HTTP and holds the mechanical promises: a deadline you add is there after a reload and after the server restarts on the same database, ticking it off persists, the board is soonest first, each open deadline carries its urgency label, and a malformed course code is refused and not stored. The starter’s invariants check the accessibility floor on every route. Whether the bands are the right bands, and whether the board is calmer to read than Wattle, are judgement calls, and they’re the ones I’d most like argued with at the crit.