by Richard Middleton
Tips for organising your first hackathon
On Saturday July 14, freeCodeCamp Oslo had our first hackathon. In the spirit of togetherness, we decided to make our hackathon non-competitive. We have lots of people who are very new to coding, and wanted them to feel they could participate and learn something along the way.
Here at freeCodeCamp Oslo, we try to bring a deep sense of community and togetherness.
Like many freeCodeCamp groups, we have a lot of expats — people who have moved to Norway, away from friends and family. This community helps many people, including myself, get out there and meet other developers and form relationships.
Leading up to the hackathon, we decided whether we were going to make it a one- or two-day event, based on feedback from the group.
After securing a venue at the amazing Explorer HQ (thanks to Marek, one of our admins), we decided to ask our campers for ideas for the project.
In total we had seven ideas, and the week before the event we looked at how feasible they were for us in the 12 hours we had.
We finally settled on making a web app where users could see if any students were studying around them. We added an invite to the map to welcome collaboration, and users could post their location for others to join their study session.
Starting at 10AM, we had a few introductions and decided on how to split the tasks.
We had many beginners to web development amongst us. All were happier contributing to the front end, or interested in learning it. This meant it was up to myself to work on the back end.
The main problem we had was being unable to use frameworks like React to keep our API calls secret. Many of the team haven’t used a framework like that before. Instead, we decided on HTML & CSS for a static front end, using jQuery to make the AJAX requests.
We also used Bootstrap 4, which allowed quick prototyping. Its strong documentation helped the front end come together.
The repo was created by Howie, another admin for freeCodeCamp Oslo, and after permissions were granted we started work.
The front end team dived into the Google Developers docs and quickly displayed a map on the front end.
The back end was going to use NodeJS with MongoDB and Express, so first a NPM init was done along with installing Express, Mongoose, Body Parser and a few other packages. Within an hour and a half, we had our API working.
While waiting for the front end, we were able to test the API using Postman to GET and POST data to and from our database.
Soon, our minimal viable product was finished.
It was great working in a team, which none of us had really done before.
We hosted the site on Heroku, and the database was hosted with MLab. After a long day, we had a usable product which we couldn’t be more happy with.
There were still things to work on, but our MVP was achieved. The next day, I remedied our open API by using Passport to add Facebook authentication.
Also, we added a few fixes to the site.
Altogether the experience was great. Working as one team of eight people helped make the environment friendly, and brought everyone together — which was our aim.
I implore you to try it yourself and set up a non-competitive hackathon for your group!
So how can you set up your own hackathon?
- Keep it to one day — a weekend day will work best. Spreading the event over multiple days means you may not get the same people attending both days, and this could be a problem for continuity. We found it best to poll our group with multiple dates and pick the most popular.
- Find a project in advance — we crowdsourced our idea process, asking users to submit their ideas a week in advance. This way, the group leaders could get together and check out feasibility.
- Secure a venue — this can be a tricky one, because you need a big enough space, with good wifi and power. Ideally, you want to be able to bring in your own snacks etc. Maybe someone in your group has a workplace that is free on a weekend? Don’t feel intimidated to get out there and drop some emails to people in the tech community. Failing that, get everyone round to your place.
You don’t need to have run a hackathon before — I had never even been to one before! The whole experience brought our group closer together. We managed to build something cool that could go in our portfolio, and we can all claim to have won freeCodeCamp Oslo’s Summer Hackathon!