HackBeanpot 2015: Post Mortem

HackBeanpot 2015: Post Mortem

I still don't know if post mortem is the best word to describe these posts but whatever.

HackBeanpot 2015. A great hackathon. Great staff, great hacks. This time around I worked with Andrew and Tevin. It was Andrew's first hackathon which made it all the more exciting. We came into the hackathon with "no ideas". We had two ideas but we weren't fully commited to them. After introductions and API talks we decided to go with one of the ideas we had. Recieve MBTA times and alerts by SMS. This was inspired by a similar service in New York City and by the current Snowpocalypse that Boston is experiencing.

Side note: I still don't hate the snow. Even with all the cancellations and MBTA malfunctions and having to shovel out my car multiple times (my battery even froze this weekend) I still love snow.

It was simple, text a number a station or a from and to station and get information about train departures from that station and get alerts (this morning I sent a message and recieved 21 alerts). We would use the MBTA API, Flask for the web server, Twilio for sending SMS, Parse for database things, and DigitalOcean for hosting. It took us a little while to get into a rhythm, I'm not that good with Python. The only times I have used it have been at hackathons. I decided to take on talking to Parse. I'm a pretty big advocate for using Parse, it's free backend things like a database, push notifications, and analytics. I have really only used the database part though. I used ParsePy to talk to Parse. It went OK. I think my biggest challenge was just programming in Python. Not too familiar with it still and I only use it like once or twice a year.

Using the MBTA API was not as bad as I expected. The documentation is only available as a PDF though. I didn't even know that was a thing. It provides schedule, alert, and realtime data for all MBTA services...except for underground Green line trains...and above ground Green line data isn't the greatest either. We decided to focus on the red and orange lines for what we would support initially.

Tevin took on the role of doing MBTA API things like getting schedule data, Andrew handled parsing incoming SMS messages. Since we were using Parse I wanted to try to build a favorites system. The user would be able to text favorite (or fav or fave) to the service. The service would ask them for a keyword like work or home and then the service would ask for the actual query they wanted to be attached to that keyword. After that it would save all that information into Parse and then the next time the user send that keyword they would get back the information that the query would generate. I thought it was a pretty simple thing to implement. Currently the Parse backend stuff works but the message interaction is broken. And the code is horrible. (That mass of text under where it says "this code is really bad :(" is the horribly bad attempt. Please don't look. I don't even know how I have a job right now). I feel like I should have tried planning out the favorites code some more. It was going to be build into a bigger menu system but we didn't have time for that. Now that we do that time the favorites code would have to be rewritten anyway.

Not all things are bad at a hackathon though, I did get pulling alerts from the MBTA API working fine. Pretty happy with that. I wanted to make the alerts more personal, for example if the red line had an alert append a fire emoji to the end of the text or something. We also got to demo what we did. We got to a point where people could text the service and it would give them info! It is actually still up right now, you can text (617)-545-FIRE (3473) and we also have a website up at http://attentionpassengers.com. The name comes from the MBTA announcements. I found a recording of a sample MBTA announcement and was just really happy I found it. You can find the audio here.

This hackathon was another success. I think every hackathon is a success as long as you show up and do things. You don't need to make a finished product, or even a good product, or even have anything to show for it. As long as you learn something new it is always worth it. I am looking forward to HackBeanpot 2016 or whatever hackathon I attend next.

Other things

Second blog post of the year and it's already February. I kind of feel like my posts have gotten worse because I haven't been writing as much. I will probably start writing every week again even if I don't post every week. Also this Saturday is Valentine's Day so I will probably have a really shitty post about...love things I guess.

Also don't run barefoot in the snow.