App

Transit Ticker

Python JavaScript MySQL

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:

  1. 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.
  1. 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.
  1. 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.