Projects02 of 04
Timetable Changes
A lesson-change notifier for my school. A worker reads the published change PDFs, a website shows what applies to you, and your phone gets a push when something changes.
Overview
The school publishes lesson changes as PDFs on a web page, with no notification when a new one appears. Timetable Changes (Óracserék, in Hungarian) polls that page, keeps every revision of every PDF, and extracts the changes into structured data. Signed-in students see only the changes for their class and group. Everyone else sees the full list, essentially the PDF rendered as a web page.
It is two programs that only talk through the database. A Python worker runs from cron on a schedule tuned to the school day: sparse at night, frequent when changes usually land. It sends the web push notifications. The website is Astro in SSR mode with Vue islands, with Google sign-in limited to school e-mail addresses, and pages for changes, empty rooms, personal timetables and notification settings.
Notes
- Signed-in users get changes filtered to their class and group, and can turn on push notifications.
- Students can build their own timetable and share it with classmates.
- Every PDF revision is kept, so a notification says what actually changed, not just that something did.
- Role and class are derived from the school address and stay editable.
- The school-year rollover runs by itself.