I’ve been working on a project with a few friends of mine called SMARTA
. We’re investigating the ways that we can improve the ridership of MARTA
(Atlanta’s transit authority) through technology. We are all avid users of public transit (well, we were until all of this happened) and are pretty passionate about our quest to make using MARTA easier for everyone.
MARTA released a few endpoints that are accessible to a developer, all of which can be found here
. This includes some real-time bus data leveraging GTFS
(Google's Transit Specification) and a "restful" API providing information for train and bus arrival times. This API can be a bit confusing since it is completely undocumented (save for a few brief snippets of prose on the API website). Furthermore, the data itself seems pretty old (it refers to OMNI STATION which is very deprecated
), and the service is not very resilient. You'll often find periods of empty responses due to an outage with no clear indicator for the developer to react to.
Given all this, we've set out to build a new set of API endpoints we call third rail
. Third Rail will be a pass-through to existing MARTA data, but with a layer of caching and predictability that MARTA currently lacks. Additionally, we'll provide full documentation for every endpoint with predictable and modern translations of the existing response.
In addition to that, we're looking into building out predictive systems that will ingest MARTA's historical data (which is backed up by a service called scrapedumper
) and deliver insights to a rider about delays.
All of this will be baked into an iOS application
that we're developing so that riders will have this data at their fingertips.
I'm using this project to let me play with software architecture and product design. Hopefully, this will fuel more blog posts to give me something to talk about, too.