Last week I’ve been attending Porto Summer of Code. This is basically a hackathon with a pretty unique concept.
You spend 4 days working remotely and then the 3 final days are spent in a hackathon-like environment.
This was the first event of this kind I’ve attended and it was also the first edition of this hackathon specifically, which means there were a few flaws here and there but overall, I really enjoyed it and I would recommend it to anyone that’s into coding things for the fun of it.
What did we do?
This event had a theme everyone had to stick to: creating something that matches the motto: “Porto, city of the future”, or something like that - translations are hard.
So after a couple days of brainstorming, I came up with the idea of using iBeacons placed around the best city spots and having an application on your phone that would notify you as soon as you were near any of those spots.
We later expanded this idea into having full featured city analytics supported by a web backend.
I talked with 3 friends and we signed up. We are all from the same course and we’ve been friends for a while now. The event took place on the last vacation’s week, so none of us had things scheduled.
Since this project had a strong web focus (to serve content to the app and analytics) as well as a mobile app focus, we decided that it would work best if I worked on the web app and my friends worked on the actual mobile app, which would take quite some additional work.
Working with iBeacons is not a complete nightmare, but it’s not all unicorns and rainbows either. We had a couple issues with the library we used (AltBeacon), but fortunately the author of the library was pretty active on StackOverflow and he helped us out with some issues.
The web API also came out really nicely (it was just CRUD, nothing too complex) and we got a working Proof of Concept in the early days.
Tension starts building up
We were assigned a mentor, someone who has way more experience than us, and he really helped us out a lot with all other issues aside from programming. We met him in person on the first day after the remote days.
We showed him the progress and he made some suggestions for we to implement.
We also started working on a Suggestions engine powered by ElasticSearch, just to sweeten our project a bit more.
The engine would take a few things into consideration, like the time of the day, weather, your personal preferences and your location and it would generate a few cool places for you to go next that were within walking distance of you.
Final days and the presentation nightmare
So we got most of the things lined up just the way we wanted too and it was about time to start thinking about the presentation.
I took this task since my share of things were mostly done (I got the easiest part of the project) so my friends could tackle a few issues with the Android app itself.
Around 12 hours before the presentation, we got an email with the jury name and we found out that we’d be presenting our project to our course’s director, former director and some other big shots in the educational/enterprise sector.
The competition organizers thought it would be a good idea to let us present privately to them in the morning of the final day.
Unfortunately, we got the first slot in the morning and things weren’t exactly 100% ready. We failed to demo our app, but everything else went quite nicely so they understood and we got a place in the final 10 teams.
We spent the remainder of the morning preparing our demo and then it was time for the final presentation.
It was nerve wrecking, but after a couple slides I wasn’t that nervous and everything started going as planned.
I finished the presentation and we were asked a couple key questions that we anticipated and prepared answers for them, so that went smoothly too.
Waiting for the results
We were the first team to present so we had to wait for the other 9 presentations. We didn’t know any team yet, so we also got to know the “competitors”. There were some cool projects, but we were confident we’d get a place in the podium.
The results are in
After the jury and all the mentors reunited and decided on the winners, they announced them one by one, in a pretty straightforward fashion.
We got the first place. All the effort we put in for all the week paid off and we walked out of the competition with an iPad Air each. Not bad for a week’s work.
Looking forward to the next year edition!