ANU Tennis Club court booking

One page where an ANU Tennis Club (ANUTC) member books a court and sees, before they book, what their membership and Booking Package make free and what the rest will cost. Today that path crosses systems that don’t know about each other: membership and the package live in the ANU Sport UniOne account, which has no bookings; court booking lives in a separate portal, which shows no membership or package; and the club’s own site holds neither. This app puts the member, the rules and the timetable in one place.

It is a model, not a replacement. The members are invented demo people, and nothing here talks to ANU Sport.

What it does

The rules, and where each comes from

Where this departs from what the club publishes

What it doesn’t do

What’s checked

pnpm check builds the app and runs spec/ against the built server: booking-rules.test.ts holds the rules above as a contract on the one function the server prices with, and booking-flow.test.ts drives the running app over HTTP: a booking survives a reload, refusals store nothing, lights change at the daylight-saving boundary, and a played booking stays listed as completed. Whether the page is clear to a member who has never seen it is a judgement no test makes.