Skip to main content
DiffingDocs
Consistent change detection

Flags and comments diffed the same way everywhere

The calendar counts and the day view now compare the same fields. Status flags such as late and missing appear as individual rows in the day view, and comment changes count toward the calendar. A test fails if the two implementations drift apart again.

Documentation site

These docs, including an API reference generated from the scraper’s OpenAPI spec.
Tooling
Better test data
The synthetic data generator gained GPA weights, explicit date ranges, and the full letter-grade scale.
PipelineAPI
Incremental index updates

/append-index

Each scrape now adds one entry to the rolling index instead of recomputing all of it. A full rebuild had grown past the container platform’s 120-second request limit. When a snapshot arrives out of order, the endpoint returns 409 and n8n falls back to a full rebuild.

Credential handling in n8n

The webhook secret moved into a shared n8n credential, so it no longer appears in the exported workflow.
Frontend
GPA
The rolling index records a weighted GPA for each snapshot, shown on the calendar page.
Frontend
Voice agent
A LiveKit voice and text agent can answer questions about grades and changes and navigate the site on request.
Pipeline
Server-side index
The n8n nodes that computed diffs and wrote the index were replaced by one call to the scraper’s /rebuild-index endpoint.
Frontend
Deleted assignments
A page listing every assignment that disappeared from the portal, with when it was first seen and when it was removed.