BattleHack London 2013
Back in October 2013 I went to Battlehack along with 3 colleagues (Ben Basson, James Atkin and Aled Lewis) from Fivium. The hack day was initially advertised in early 2013 and when we signed up in March they hadn’t even figured out a venue. But the lure of a genuine metal battle axe and a possible $100,000 top prize was enough to make the early registration worth it.
We went in not really knowing what the requirements for hacks were; there wasn’t much information on the site apart from making “something for your city”. We went in with wild ideas to help Londoners avoid tourist traps when route-planning, make using the Boris Bikes better and other generally Londony things.
The opening talk gave more information specifically that we HAD to use some Paypal API somewhere in the product to be eligible for a prize. None of our ideas relied on any payments so we had a brief moment of initial panic before trying to flesh out a new, half decent idea. The idea we ended up doing was James', he suggested an application for communal shopping lists. This could be used by the masses of flat sharing people living in London to coordinate group purchases and by local charities and food banks to list items they actually need so people could check them off if they bought them.
We decided to make it a two-part project. With 4 of us there we split the work into an initial data model discussion and then a web system to curate and manage the lists and a mobile app to see the lists when at a supermarket.
The web system was built with Ruby, using Sinatra, with a SQLite back end. It would expose a REST API giving out JSON data for the mobile app as well as having a few screens to manage the data.
The mobile app was written for Windows Phone 8, so it was C# and XAML all the way. As the only person in our team with a windows phone and visual studio it was up to me to do the mobile app. It was also the first mobile app I’d ever had to write and my first time using C# for anything beyond the basics.
To get Paypal in there we decided to use their OAuth system to log in to our app, called KittyList, and also attempt payments later on.
As far as the Paypal APIs went, it was awful. Many hours were spent trying to figure out why it didn’t work until I eventually asked one of the Paypal reps there who told me it was just broken. During the demos on the Sunday pretty much every team expressed a disdain for the Paypal APIs and most people skipped that part because it couldn’t or wouldn’t work.
The mobile app development was surprisingly easy. I managed to knock up a relatively decent, if I do say so myself, app in a very short amount of time. I then spent time adding extra features, like mapping, displaying a regular Paypal payment screen, alphabetised lists with images…
The web app side of things went less smoothly. Sinatra seemed like a good simple choice at first but ended up costing us hours of development time as we struggled to figure out some nuances, dealt with reloading on changes and generally had a rotten time as 3 non-ruby and non-sinatra developers attempted to all code on the same app at the same time.
As far as the general hackathon organisation goes it was excellent. There was plenty of food and drink, decent desks and chairs, good general environment and views out the window and the internet held up most of the time, which makes it better than Hacked.io! The food they had was great, though the snacks were entirely sugar based which got a bit sickly after a while. They also had cocktails which, while excellent tasting and a nice touch, were very alcoholic and didn’t help our coding when added to sleep deprivation.
We all stayed up through the night hacking away, trying our best to get enough code written, and with few enough bugs, that we would have something to demo. As the next morning rolled around we had a brief practice demo to check the laptop worked with the projector and the pitch was okay for the 2 minutes we were allotted. Another few hours of hacking and lunch and we finally downed tools with a fairly functional mobile app and a loosely working web app. It wasn’t great but it seemed like enough for an MVP and enough to demo.
Unfortunately the demo didn’t go so well. We were the first team up, which never helps, and demos were restricted to a tight 2 minute schedule. While we had rehearsed a little we didn’t perform so well under pressure, especially while so sleep deprived. With 30 seconds left in our demo we still hadn’t shown the mobile app side of things, so we had to hastily get it on the projector and show a few screens before the time was up. Unfortunately we probably only demoed about 50% of what we had made, for both the web and mobile apps.
Thankfully only a few other teams had made Windows Phone apps though, and ours, even with the brief demo and it being my first Windows Phone app, was still good enough that we won a prize (a Nokia Lumia 1020 each) courtesy of Nokia for the best Windows Phone app :D
Shockingly we didn’t win the grand prize and go on to the next stagfe, but all in all a good weekend was had. The code wasn’t so great and the demo was pretty bad but I learned a lot about C# and Windows Phone development and we came away with a pretty awesome prize.
Photos of us demoing, getting the prize and people working shamelessly ripped from: https://www.flickr.com/photos/martin_88/