May 2024Personal project
ASU Course Notifier
A serverless system that watches ASU course enrollment and pushes alerts through Telegram and email the moment seats become available.
- Python
- AWS Lambda
- Docker
- AWS EventBridge
- AWS SNS
- Telegram Bot API
- Selenium
01
What it does
ASU Course Notifier is a serverless watcher that monitors Arizona State University course enrollment on a configurable schedule and pushes instant alerts through Telegram and email the moment a seat opens up, so registration doesn't depend on manually refreshing the catalog.
02
How it works
- AWS EventBridge triggers a containerized AWS Lambda on a configurable schedule, no manual checking required
- Two implementations: a preferred REST API client (~200MB image) and a Selenium + headless Chrome fallback (~800MB+) for when the API path breaks
- Pandas parses API responses; the watcher filters out reserved seats so alerts reflect what's actually open for general enrollment
- Dual notification channels: instant Telegram pushes via the Bot API plus SNS-driven email delivery
- Tracks multiple courses in a single Lambda invocation; ships as Docker images through AWS ECR for reproducible deploys
03
Key decisions
- Serverless on Lambda + EventBridge so the cost is effectively zero between checks and there's no server to babysit
- Containerized through ECR rather than zip-bundled so the Selenium fallback (which needs Chrome) deploys with the same workflow as the lightweight API path
- Reserved-seat filtering so alerts are actionable, not noisy — the system only fires when a real general-enrollment seat is open
- Dual notification channels because Telegram is fastest on mobile but email is the durable record