Spaces:
Sleeping
Sleeping
| title: Tuas Crossing | |
| emoji: π | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # Tuas Crossing | |
| A live + forecast dashboard for the **Tuas Second Link** outbound (Singapore β Johor Bahru) | |
| crossing. | |
| - **Now** β live corridor speed bands (AYE / Tuas Viaduct / Tuas Second Crossing), | |
| predicted AYE β Tuas Checkpoint travel time, incidents, and live traffic camera stills. | |
| - **When to cross** β a day Γ hour heatmap built from accumulated history. | |
| ## How it works | |
| - `GET /api/live` β travel time, cameras, and incidents come live from LTA DataMall | |
| server-side (the API key lives only as the `DATAMALL_KEY` Space secret), cached ~60s. | |
| The **corridor speed bands are read from the public dataset** (the laptop collector is the | |
| single client of LTA's heavy `v4/TrafficSpeedBands` feed), shown with their age. | |
| - `GET /api/history` β reads the public companion dataset CSVs and aggregates average | |
| speed band by (day-of-week, hour). | |
| - `GET /api/freshness` β newest collected-sample age, for the stale-data badge. | |
| Data source: [LTA DataMall](https://datamall.lta.gov.sg/). History is collected on a | |
| private always-on machine and pushed to a public Hugging Face Dataset. | |
| The DataMall key is **never** exposed to the client β it is used only server-side. | |