Listen to this article
After months of experiencing unreliable transit schedules in Nuremberg, I decided to create a solution that would provide better transparency and insight. Standing at bus stops wondering when my ride would actually arrive became a daily frustration.
The Motivation Behind the Project
As a regular user of Nuremberg's public transportation, I found myself asking questions that standard transit apps couldn't answer:
- Which routes consistently experience delays?
- How does the system perform during peak hours versus off-peak times?
- Are some neighborhoods receiving better service than others?
Transit agencies collect this data, but rarely present it to the public in an accessible, analytical format.
Technical Implementation
- Data Collection: Python script interfacing with the VGN API for real-time departure information.
- Data Storage: Redis for real-time data, PostgreSQL for static transit information from GTFS feeds.
- Analysis Layer: Functions for on-time percentages, average delays, service frequency.
- Visualization: Streamlit and Plotly for an interactive dashboard.
Technologies Used
Python | Redis | PostgreSQL | Streamlit | Plotly | REST API Integration | Docker
View GitHub Repository →