Currently working on a fully offline TfL guide. Requirements:

  • Fully offline. The final product is a PDF I can load on my e-reader. The London underground is a challenging environment for internet connectivity, and I have seen way too many instances of apps tripping themselves due to poor mobile service.
  • Shows where the way outs / transfer exits are (i.e. where to get on the train so I will be close to the exit)
  • Shows first / last trains for any given station

This is still a very work-in-progress project, but currently:

  • London Underground, DLR, Overground, and Elizabeth Line are covered
  • “Covered” as in, each station has its own page, showing previous & next stations, and lines available at the same station.
  • The stop locations are still being implemented. This is largely a manual process on the data ingestion side because I will not miss an excuse to take more trains.

Using Python (Interacting with TfL API + most of the data wrangling) + SQLite (stop location) + Typst (rendering to a PDF). Previously also using memcached to cache TfL API results but dropped it in favour of just writing responses to disk (it’s fine – we are not doing cloud microservices here).

An e-reader showing information for London Underground Metropolitan Line Euston Square station. The page shows the zone the station is in (zone 1), with a link to the station's timetable. It also shows a simplified version of the platform map, indicating which carriage is closest to the exits. &10;&10;Towards the bottom of the page there are links for switching to other lines in the same station, or travel on the same line to different stations.An e-reader showing information for London Underground Jubilee Line St. John's Wood station. The page shows the first / last trains for the station.An e-reader showing information for London Underground Metropolitan Line. It lists the stations in alphabetical order, with a color coded switch-panel in the bottom for switching to similar pages for other lines.