Inspiration

Millions of New Yorkers experience waits for MTA trains on a daily basis. The vast majority of riders have no way to know if the train is coming, how long they will have to wait, or how badly the system is running at the particular moment. A few lines, the 1 through 7 lines, have hardware installed that allows accurate tracking of trains on the line, allowing estimates for train arrivals for stations only on those lines. The remaining trains have no such hardware and will, most likely, not anytime soon. In the age of data, there is a simple solution: crowd-sourcing. Our project, TrainTime, hopes to help riders on all lines track their trains and have a reliable estimate of the state of the system around them.

What it does

TrainTime uses schedules provided by the MTA and input from users already tracking incoming trains to create a reliable estimate of train locations. Since this does not rely on any costly hardware additions on the MTA's part and simply asks for confirmations from its present users on estimates, this can be applied to any train line and even expanded beyond just the NYC MTA subway system.

How I built it

This project was built with Python and using AWS to host the server, Flask to run the server, SQL to store schedules pulled from the MTA and user confirmations on current estimates, and HTML/CSS to optimize for desktop and mobile access to the page.

Challenges I ran into

Coordinating between multiple people was a challenge, especially when working on the same files because of merge conflicts. Furthermore, working together efficiently was more difficult due to the long length of the hackathon and each person's level of endurance. Most of all, however, errors and random technological malfunctions held us back.

Accomplishments that I'm proud of

We were able to create a working system bringing together multiple technologies and produce a good looking result. The quality of the end product, in terms of form and function, was beyond what we expected.

What I learned

We learned about AWS EC2 and RDS instances and using them with Flask. There were plenty of problems, such as having to link manually to different pip packages and files.

What's next for TrainTime

Next, we hope to fix remaining errors and improve usability and feel. Moreover, we would like to implement machine learning or other technologies to adjust the MTA schedules based on real world data in order to help provide more accurate estimates. Furthermore, we would like to implement automated location tracking based and app based understanding to allow more and constant input.

Share this project:

Updates