Imagine it’s a rainy day, you rush to the subway station to get the next express train to school. You run down the steps of the station and notice that the steps are very slippery and are starting to flood... As you wait for the train you hear a commotion. Someone seemed to have fallen down the stairs…The train screeches into the station. You get jostled by all the people pushing by you. You try to push through the crowd to get onto the train, but the doors close before you can get on.

Now imagine it’s that same rainy day. You rush to the subway station to get the next express train to school. What's different? You check the Metro EZ app on your phone before walking down into the subway station. On the app, you see that the next train is relatively empty, so there’s a good chance you can get a seat. You run down the steps of the station and notice that the steps are very slippery and are starting to flood. Before swiping your MetroCard you snap a picture of the flooded steps and post it onto Metro EZ. Your picture is viewed by an elderly app user. He sees the slippery steps and decides to go to another station that has an elevator. With Metro EZ, you’ll get real-time information on station traffic and conditions, taking the guesswork out of commuting.

What it does

Our mobile and web app helps New Yorkers and tourists effectively navigate the subway system with our easy-to-use interface. By downloading our app or using our website, the user can check a regularly updated heat map of the New York City subway system to see live location updates of how crowded a particular train is, the condition of the station and train, and if there is an issue with a train or station. As the MTA has limited resources, they will be able to use the data that MetroEZ collects to determine which stations have the most foot-traffic, and invest in maintenance and accessibility in the stations that need it the most. Our app will also allow users to upload pictures or leave comments on the condition of the train or station. This feed will make it easier for the MTA to get information in real-time of which stations have problems that will impede accessibility, such as flooding, debris, and broken elevators. We designed this app with New York City in mind, but it can be easily expanded to any public transportation system.

How we built it

We outlined the front-end of the project by building the basic user interface for the MetroEZ tool. From there, the front-end was created in React, Javascript, HTML/CSS. The backend was created using Python, Firebase, and Node.js.

We created a database using Firestore/Firebase to capture user inputted information about station conditions.

For the backend we decided what we wanted to work on - using bluetooth low energy to estimate the number of devices (and people) in an area. We had to do a lot of research to determine which programming language would be the best suited to capturing this data. We decided that node.js was the most efficient way, and researched other code that used similar implementations.

Challenges we ran into

It was difficult for us to find a way to sync together the front end and back end. None of us have had to create a webpage or app that uses both front end and back end code. We decided to work with Firebase, which was also new to all of us. We also had to work with programming languages that we had not used before, or were not comfortable with.

Accomplishments that we're proud of

This was the first hackathon for many of our teammates and the project was built with new tools and languages we did not have prior experience in. Despite the steep learning curve, we were able to create the launching point for a robust application. Even though we didn’t know how to use Firebase, or certain programming languages that were necessary to create a functioning project, we were able to pull together and learn the basics about the new tools that were necessary for our ambitious project.

What we learned

We learned just how interconnected everything is. Through research, we discovered how to use Bluetooth enabled devices to count and estimate the number of people in a given area. We also learned how APIs are necessary to integrate the front end and back end.

What's next for MetroEZ

We definitely would like to continue working on our app, by adding new features that we weren’t able to in this limited amount of time. For example adding a login for users and a picture upload function. We would also like to improve the MetroEZ’s security and monitoring capabilities.

Share this project: