Hello and welcome to this post. As a developer/IT-related-person you probably are familiar with the concept of hackathons. If you aren't, let me break it down for you:
Hackathons are usually very time limited. For a fixed period of time, you intensively work on a given problem/feature/idea. In a hackathon, the objective rarely is a perfect result rather than a proof of concept/demo. The code doesn't have to be perfect, the objective normally isn't to create something that you'd ship immedeately after the hackathon. Just create something and do it fast.
So, now we all should know what a hackathon is at the core. A German Youtuber, Kevin Chromik, organised a Mini-Hackathon. I already know some people on discord that would take part, so we quickly decided to form a team. That was an incredible opportunity for me, since I didn't happen to work as a member of a dev team yet.
The concept of the Mini-Hackathon was, to give a topic and an API, that had to be used, and everybody could create something, alone, or as a team. The challenges were purposefully inprecice, so everybody from a complete newbie to seniors had the chance to create something on their own personal level. Every second day we would get a challenge and had to finish until the next day at 6pm
The first Challenge
On 7am we got our first objective. Our task was to create something, with the open-meteo-api. We decided to build an IOS App that tells you, wether you should water your plants or not, based on the amount of rain expected to fall on a given day. So we got to work. Because Kirreth didn't have a mac yet, he decided to quickly create and fill a database on pockethost, Amelie collected Icons for the plants Kirreth stored in our database, created tips, displayed in the App and the marketing texts. Simon and myself did the core of the app.
For this, and the following projects as well, we used Swift and SwiftUI. I mainly worked on a card, that displayed the current weather, temperature as well as the forecast for the next hours and parsing/processing the data we got to use for our watering-recommendation, Simon mostly did the plantlist, locationdata, network tasks and an image and video for presenting our result.
The first day was really chaotic, we weren't really organised yet and had a lot of merging and resolving conflicts to do. But we managed to finish the app on the next day and present around 3pm.
Second Challenge
Todays challenge was, to use the open-foodfacts-api. We wanted to build a little game. Kirreth collected traditional recipes for 45 countries, including over 140 ingredients.
Lets say the api was a little pain. Often information was inconsistant or completely non-existant. So to get fairly accurate results, and always exactly the same product (we did't want do let the user decide which was the right product, we just wanted to get the kcal/100g). So I ended up researching an EAN for every ingredient. Amelie again did merketing and icons for the ingredients, Simon did most of the app. I only did the presenting of dishes + fetching and presenting their kcal/100g in addition to the view where the ingredients were floating and bouncing off the edges, since the main part of the app was the game screen and multiple people working on the same thing isn't all that usefull and there was a lot of research to do. We also included a leaderboard and an points for fast, correct answers to let users compete a little. On this app our collab wen't far smoother and we, again, finished around 3 pm the next day. Great job team!
Third Challenge
Now, lets say, our third project wen't a little out of control. The given Task was pretty simple. We were supposed to use the omdb-api. Well, while you could just create an app to browse movies and maybe create a watchlist, we figured to build a movie-based "Dating-App". And we used the tmdb-api in addition to omdb, since the endpoints were more useful for our puposes. Kirreth again set up our databases and created dummy data, Amelie again was our marketing genie. Our discussion on what exactly to do went on for so long, that I ended up programming until 4:30 am the next day, Simon didn't get much sleep either, to much thinking about what was left to do.
Let me explain what our app does: We got a list of the best rated movies, that you can like and see detail of, a view where you swipe movies to the left/right to like/skip them. A that shows other users and their favourites when you click on their profile, and obviously your own profile.
We stored wether a movie is liked or not, the account id and favourite entry id in UserDefaults. That on its own is pretty wild. For some reason a few genres returned different models when requesting from tmdb, so we kicked them out. We were incredibly stressed to finish in time, but thanks to Simons great performance and my nightshift we again finished in time. Let me show you the result.
Conclusion
The Hackathon was great. I learned a lot and I loved working with a team for the first time. I would definitely do it again, except I got far too less sleep that week. Thank for staying with me and participate in a hackathon yourself, Mia
Additional Note
We liked our first project, BloomBuddy, so much, that we decided to continue devoplemt and release it to the appstore. Once its published and a seperate blogpost may exist, I will link it here and at the top.