About 6 years ago, when I was first looking for a software job out of grad school, one of my portfolio projects was a train time app for the New York City subway (realtimerail.nyc). Eventually I realized most of my backend code was agnostic to the specifics of the NYC subway. Over time, I evolved it into a general purpose backend that (in theory!) works with any transit system that distributes realtime data in the GTFS format.Nowadays you can run Transiter, install a transit system you're interested in, and then use Transiter's REST API to query data like "when is the next train". There's a demo site at demo.transiter.dev.