This post was originally featured on the Expo blog.
Our prompt was to choose a New York City agency and create a technology that would improve their workflow or output. While many teams started hacking away at the first idea they could come up with, the five of us sat round a table discussing the different agencies that made up the city and which of them could use our help the most. Having had the most experience using the slowly collapsing subway system provided by the MTA, we determined that improving their service would be the best use of our time. Comparing our metro with those of other cities and countries,we agreed it was the entry system that needed some of the biggest upgrades.
Seeing as we weren’t breaking ground on some Vibranium-based powersuit, all we really had to do was explore the other implementations of entry systems and decide on the features that could make our subway great again. Metrocards are expensive, easily lost, and environmentally wasteful. Countries like The Netherlands, Russia, and England, to name a few, all employ an NFC-based system that allows for much faster entry. After discussing the option, we decided against using NFC entry as it has not yet been adopted by many banks and phone manufacturers here in the states. However, we did take inspiration from such systems by deciding on another mobile-based entry method — QR Codes. We recognized three features that would need to be included in our system: security, simple deposits, and super fast entry. Security was our biggest technical concern as QR codes could possibly be captured and used by other people. To mend this, we came up with a code that was time-encoded, meaning that each code would be valid for only five seconds before being replaced with a new one. When testing among ourselves, we were unable to take a screenshot, share it, and open it on another phone within said time limit.
When we first started coding, most of our Friday night had already gone by. There were only about 36 hours until the pitch. Before we went to work, the team drew a few quick mockups of what the app layout would look like. This design left a lot to the imagination and each component would be finalized by the person tasked to build it. In hindsight it would’ve been better to spend more time on that phase. Nevertheless, inspired and motivated, the team went to work. Thita and Xin began building and integrating the login screen/accounts, John and I worked on the main qr code/scanning screen, and Sang managed to put together the many pages involved in funding/purchasing a ride. We would meet every few hours to get a check on the overall progress. We also took turns taking short naps. In the final hours, the team agreed that the presentation would be incomplete without a scanning system. Using an Expo demo we found online, we were able to very quickly build a simple QR code scanner and add a few lines of verification code. (After scanning, it simply flashed green if a code was valid and red if it wasn’t.)
With four hours left on the clock, we paused all software development to focus on the presentation. We had to pack everything we had done into a three-minute pitch. We decided that every member of the team would get a chance to speak and cover their own section. Sang started by introducing our team and describing the issues that plagued the MTA. He explained the inefficiencies of Metrocards and their effects on the environment. Sang also walked through what needed to be done to fix the system. Xin gave a brief overview of our main goals and the reasons why we chose a QR Code-based approach. John jumped in to give a more specific explanation of each step of the user flow including entering a station and buying a ride. Having suffered through a cold a few days before, I had lost my voice and did my best to describe the technologies we had used and the flow of data throughout the platform. Demo time! Xin took over again to describe each step as I gave the judges a close up look at our build.
That’s it for our guide to winning a hackathon! Thank you to CUNY Startups and Baruch College for hosting the event. We appreciate all of the great sponsors — Facebook, Google, Codecademy, IBM, and Protohack — for funding the hackathon and handing out great swag. And finally, thank you to the amazing mentors from around the industry who came to teach us new APIs, platforms, and general skills. For any questions regarding the project or winning a hackathon, feel free to reach out to anyone on the team.All project source is available on Github.