Photo taken by Jon Poole (I think). More photos here.
This weekend I took part in my first ever weekend-long ‘hackathon‘, where a bunch of developers group together to create solutions to make Bath better. The event took place at the Bath Guild. We were encouraged to take publicy available data about the city and turn it into a resource that members of the public could actually make sense of.
I formed a team with two other hackathon newbies, Christopher and Cliff. Christopher wasn’t a coder but had an idea for a project, Cliff had experience as a front-end developer, and I was a recent graduate with almost no experience building a thing from scratch.
Christopher’s idea was to build a website that would help people decide who to vote for in future elections. It would list the candidates with links to various forms of social media, and give unbiased policy information. It would also look into the past, providing results of previous local elections, and also the future. An idea was to try to tackle tactical voting. The site would ask visitors who they were going to vote for, then who they would ideally like to see in power. It would then show them the summary of what other people replied. We thought it would be interesting to see if this data would affect people’s decisions.
The results of previous local elections are stored on the council website, buried under a mountain of links, and are incredibly difficult to find trends. Christopher had spent some time before the hackathon copying the data into an Excel spreadsheet. I then uploaded it to Socrata. That’s right, we contributed to the open data store!
The Socrata service was brilliant. It meant our app could easily query the data and Socrata would return only the data we want in the format that is really easy to use on websites.
I then discovered how easy it was to take that data and turn it into a chart, using this wonderful thing on the Internet called chart.js. By the end of day 1, I made a page with a button for each ward in the Bath area. When a button is clicked, it loads the information from the datastore and updates the graphs accordingly.
Most people, including myself, went back home for the night. I think it was a good decision.
After a good night’s sleep, I got back to The Guild and carried on from where I left off. Cliff looked into inserting data about candidates for the 2015 election. I learned about Node.js and this magic tool called Grunt. I then gave the project a name and put it online.
Lunch was provided on both days. We were given burritos on Saturday and bagels on Sunday. I think the bagels won, just because they were so much easier to eat.
The day went by so quickly, it wasn’t long before we had to stop coding and present what we had done to the rest of the teams.
Each team was only given 2 minutes to present their idea. Unfortunately Christopher had to work so it was up to Cliff and I to give the presentation. Actually, Cliff did all the talking!
Unfortunately, we “didn’t have the time” to find the actual photos of the candidates for the 2015 election, so we had to find some others. Then we realised the Lib Dem candidate was in the audience.
Cliff showed what we’d done and explained what we were going to do in the near future to finish off the website.
The hackathon produced some great projects. The overall winners made a website that helped parents choose a primary school by painstakingly taking the data from a 100+ page PDF file provided by the council and turning it into an easy-to-read website. I helped them with hosting their site on GitHub and verified that it would work on my phone. Of course, if their website works on Windows Phone, it’ll work on any phone. True story.
// TODO: SO MUCH
By the end of the hackathon, we’d only implemented the results of the 2011 local election, a list of candidates with incomplete information and a completely fake representation of how people would vote if they weren’t thinking tactically.
I think it’s safe to say we’ve got a long way to go before people actually find VoteTub useful, but we’ll do it! Christopher has been loyally scraping the needed data from the council website, and Cliff and I will carry on developing the website.
Although we didn’t win any prizes, it was a wonderful event and I’ll definitely attend the next one. By the next event I’ll make sure I’ve had experience making web apps from scratch using Node.js. That seems like the cool thing to do these days!