Academic & Athletic Operations Dashboard
Personal tool, running since August 2026
The problem
Six courses, 20 hours a week of training and competition, and deadlines scattered across four systems that don't talk to each other: the LMS, university email, athletics compliance, and my own calendar. There was no single place to know what was due.
The constraint
The university denied my request for LMS API access. I rebuilt the ingestion path around the public calendar feed and got the same outcome inside the restriction.
What I built
A Google Apps Script pipeline that pulls from Gmail, an ICS feed and a manual entry form into one sheet, with deduplication, categorisation and notifications.
The design call I'd defend
Nothing is written without my approval. Silent automation on academic deadlines is a bad trade: a false negative costs a grade, and my eligibility depends on those grades. I optimised for control, not coverage.