- Open-Meteo
Headway Planner
Tells a metro control room where to add trains, hour by hour, in English and Gujarati.
A planning tool for the Ahmedabad–Gandhinagar metro: it compares each hour's demand with what the timetable can carry, finds gaps longer than the service standard, and recommends a new frequency with the reason written in English and Gujarati, adjusting for festivals, cricket matches and rain.
What I did
- Product design
- Frontend
- Data model
2 languages
every recommendation in English and Gujarati
Hour by hour
demand vs capacity per line




01
Why I built it
Timetables are planned for normal days, but Navratri, Diwali or a match at Motera change who travels and when.
02
The problem
- Timetable gaps longer than the service standard in some hours.
- Event and weather days that break the usual demand pattern.
03
System design
- 1
Demand model
Passengers per hour on each stretch, adjusted for events and day type.
- 2
Capacity check
What today's and the recommended timetable carry, and how many are left behind.
- 3
Recommendations
Per time band, written by Gemini with a template fallback when it's unavailable.
- 4
Weather
Rain forecast from Open-Meteo.
04
Decisions & trade-offs
A template fallback behind the LLM
Why: A control room can't wait on an AI service: if Gemini fails, the same advice is generated from a template.
Trade-off: Less natural wording when the fallback runs.
05
Backend & frontend
Backend
- Recommendation engine with an LLM layer and a deterministic fallback.
Frontend
- Network map with per-hour crowding, schematic view and charts.
06
Results
- Live at metro-hack.vercel.app.