This month I've participated at the EUHackathon in Brussels. We had to build tools for increasing transparency and participation in the European Union. I didn't know anybody, made a team on the spot, we hacked together a cool web app that scraped the agenda of european commissioners, won second place and had lots of fun.

I found out about the competition from the alumni group of a camp in which I participated two years ago. I filled an application form where I submitted some ideas and my skills. After a month I received my plane tickets to Belgium.

I arrived in Brussels on Monday and went straight to sleep. The weekend before I went hiking with colleagues from my University on the beautiful mountains in Romania.
Sinaia, about 2000m
The next morning, I walked 5 minutes to the Googleplex, the place where the competition happened. Caroline DeCock, the organiser, told me that we were 3 individual participants and it would be nice if we would make up a team.

My teammates were Daniel Freund and Anselm Bradford. Daniel works for Transparency International, an organisation that fights against corruption. He doesn't have any technical skills, but he knows how EU institutions work, what laws should they respect and what are the best available resources to build from. Anselm is from the US and he was travelling to India. He is an engineer at Code for America where he builds apps for government institutions.

Daniel, me and Ans
We talked about more than 3 hours before deciding on an idea. Daniel told us that in the last 3 weeks, due to the pressure for more transparency, the EU commissioners have started publishing with whom are they meeting daily. The problem is, this information appears scattered around each of the commissioner's page and after the meeting has passed it gets removed from the page. The data is not shown in a transparent manner and, as a journalist or as a lobbyist, it's important to have to possibility to dive into past meetings. Finally, commissioners and their staff are allowed to meet only with registered lobbyists from organisations that declare how much they spend yearly on lobbying in the transparency register.
This is how the agenda of the president is shown.
So, we split up and everybody started working. I used the requests and BeautifulSoup libraries to scrape the data. Then, I thrown it in a Django app and exposed a REST API using TastyPie. Ans built the frontend using pure Javascript and Haml. Ans had some problems because he was using another laptop (he didn't took his Mac because he was going to India), but we ran the frontend isolated in a Vagrant box.
Our app, filtered by unregistered lobbyists.
Daniel told us from an user perspective what he would want to see in the app, what feature was useful or what was useless. He also went through each of the entries, cross-checked it with information from the transparency register and drew statistics from the data for the presentation. After 30 hours of coding and researching, we had a working hack with over 100 entries. The projector broke just before our presentation, but that did not stop us from impressing jury, which had members from Google, Facebook, Netflix, ICANN and Chaos Computer Club.
After the presentations, we went to the EU parliament where the prizes were given. We got second place. The winners scraped the whole archive of videos from the public EU parliament conferences, tagged them using metadata and exposed a beautiful interface for watching them and interacting with other viewers.

After the ending ceremony, I went with 4 other participants to a nice place where we played board games. After losing badly at Carcasonne and winning at Dixit, we went to a hipster place in downtown, where we talked about EU politics, US congress, Romania's latest elections, Ukraine, scientology, the Chaos Computer Computer and a whole lot of other interesting subjects.

I want to thank the organisers, because the accommodation was cozy (even though I slept only 5 hours each night), we had a lot of delicious food and everything was awesome. The app is open source on Github, the working example is available here and the API has CORS enabled and can be used freely.

See you next year! :)