Transit Ticker is a modular real‑time transit information system built around a Python‑driven ETL pipeline, a normalized MySQL data model, and a lightweight API layer designed to serve IoT devices and companion applications.
System Architecture
The platform is composed of three major subsystems:
- GTFS Data Pipeline (ETL)
- Two independent Python ETL services ingest:
- Static GTFS (routes, stops, shapes, schedules)
- Real‑time GTFS‑RT (trip updates, vehicle positions, service alerts)
- Static feeds are parsed, normalized, and stored in a relational schema optimized for fast lookup of stop‑to‑trip relationships.
- Real‑time feeds are processed at a fixed interval, updating:
- Arrival predictions
- Trip delays
- Cancellations
- Vehicle positions
- ETL jobs run continuously and are designed to be stateless, allowing horizontal scaling.
- Data Storage Layer
- MySQL serves as the primary datastore.
- Schema includes:
stops, routes, trips, stop_times, calendar, calendar_dates- Real‑time tables for
predictions, vehicle_positions, and alerts - Indexed for:
- Stop‑based lookups
- Next‑arrival queries
- Time‑window filtering
- Designed to support both historical queries and real‑time reads.
- API Layer (in development)
- REST endpoints will expose:
- Next arrivals for a given stop
- “Leave‑by” calculations based on walking time or device location
- Route summaries and service alerts
- API is optimized for low‑power IoT devices (e.g., LED matrix displays, microcontrollers).
- Planned rate‑limiting and caching to reduce load on the database.