Since I moved off campus this year, I’ve been incredibly frustrated by how unreliable the Hamilton bus schedule was. The schedules posted on the poles at the bus stops are next to useless, as buses frequently show up 30 minutes late, early, or don’t even leave the station.
The city of Hamilton’s Open and Accessible Data project has opened up a number of live data feeds to the public, one of which is the live bus location information. A number of apps make use of this by allowing a user with a smartphone to tap into this data and give more accurate time estimations.
Unfortunately, these apps don’t solve my problem. Although I have a smartphone, I don’t pay for data. This means that if I’m waiting at a bus stop, I don’t have a connection to be able to use the apps.
Vancouver has dealt with this problem very well, by providing a free number that you can text (including your bus stop number in the body of the text). This service will then text you back with the times of the next 5 or 10 buses and their real time estimated arrival times.
My solution: recreate the awesome texting service that Vancouver has, but using Hamilton’s live bus feed. And so, HSR Live was born.
The app is built using a combination of Node.js and Phantom.js. Rather than using the GTFS data (and having to parse all of the data and calculate arrival times myself), I decided to use Phantom.js to scrape some of the data from this flash map of bus locations. This sped up my production time for this app from what could have been a month to just a week of development (admittedly ignoring some assignments to get it finished).
The app is now fully functional, although it’s missing some core features that I’d like to add before I release it publicly. If you’re from Hamilton and would like to beta test it, shoot me an email at firstname.lastname@example.org or message me on Facebook.