Make specific local knowledge trustworthy and easy to use.
The school’s working athletics spreadsheet contains the information families need, but it was not designed for quick phone searches or day-to-day schedule checking. It also includes internal logistics that should never appear in a public-facing view.
02
The approach
Start with the information architecture, then design around the answer.
Fetch the source spreadsheet through a same-origin server endpoint and strip passenger counts, transportation times, staff assignments, and free-form notes before anything reaches the browser.
Turn the remaining fixtures into Today, seven-day, upcoming, and full-schedule views with search, sport filters, and locally saved teams.
Track schedule changes per device and expose cancellations or postponements only when the source text makes them explicit—never infer details that the data cannot support.
What makes it work
Details that turn a website into a resource.
01
Spreadsheet in, useful schedule out
CSV parsing and normalization turn an operational source into grouped, readable event cards without asking staff to maintain a second schedule.
02
Privacy at the boundary
Sensitive logistics are removed on the server, while telemetry stores only allowlisted aggregate feature counts and coarse outcomes.
03
Honest about uncertainty
Suspicious times are flagged rather than rewritten, away status is labeled as inferred, and important details still point back to the official sheet.