As you may know, I'm attending DELTA High School and when they announced that they were hosting a hackathon, I was all in!
The hackathon took place from 30.09.2022 to 01.10.2022, where we had around 24 hours to make a prototype from scratch based on ANY open data source that somehow relates to Pardubice. However, we received close data from parking sensors. This will become important later. This was the first hackathon I ever attended, so naturally, I was hyped. After assembling the dream-team called team.devs (how original :D) consisting of Me, Vojtěch Volf, Michal Vaniš, and Daniel Beneš we got into work.
We started by brainstorming for like 3-4 hours. Personally, I believe that this is the single most important thing you can do at hackathons because hackathons are more about the idea aspect. Nobody expects you to have a full-blown error-prone application after 24 hours. The maximum that's expected of you is some demo showing that your idea CAN be accomplished.
After agreeing on the idea, we split into two groups. I and Michal Vaniš were the "programmers team" and Vojtěch Volf with Daniel Beneš were the "UI Design team". I and Michal started by deciding on the tech stack and setting up project basics. He got to work on the frontend setup and I got to work on the backend setup. Meanwhile the "UI Design team" started developing the Figma designs.
After that, we iterated in real-time. Figma boards were always one or two screens ahead of the programming team, which was doing different parts of the projects at the same time. I and Michal always agreed on which page we wanted to work on and created it from scratch (one programmer was developing one page at a time). This meant that we were able to quickly create parts of the app independently (frontend and backend) and then glue them together. This strategy worked really well for our need to operate quickly.
Once the "UI Design team" were done with Figma designs, one of them, Vojtěch Volf, went and created other UI/Marketing and the other one, Daniel Beneš, went ahead and helped the programmers with part of the backend.
We originally chose Expo as a frontend framework of choice for our prototype, because we were both familiar with React and wanted to give the referees a link for trying the app out during the presentation, this would have been, in my opinion, a really cool way of showing the prototype, however, 2 hours before the showcase we found out that we were unable to run the app. There were 2 main problems. The first one was that school wifi was/is configured to block incoming communication and the other one was, that we only developed/tested the app in a browser, where we used units like "px". As it turns out, you cannot do that in Expo (or at least if you want your application to work on mobile devices). In the end, we decided to give the remaining two hours to further development, instead of ad-hoc fixing for mobile usage. We also needed an API for making request to third party services and storing data additional user data. We decided to write the API in Express as it allowed quick iteration. Would I choose this stack again? Probably not. Expo has increasingly become more and more dependent on the Expo build service, and to be quite honest, if I'm unable to build it locally, I'm gonna stay away from it. I could eject and build it as react native project, however, that is a very clunky way of doing things and after testing it a couple of times I've encountered A LOT of errors with vanilla/example projects! I cannot even begin to imagine the number of errors that could happen when compiling larger projects. As for Express, yeah, it has a lot of "JS problems", but it's very good for iterating quickly.
Time flew by and the time to submit our projects came around very quickly. We finished around 40% of the app. Something that was presentable as a demo, however, was not ready for day-to-day usage or error-prone at all. And then we waited as team after team presented their projects. We eventually presented as well, and I think it went smoothly. A feel like the work of Vojtěch Volf gave our project "the soul" (or at least from a PR standpoint). After some waiting, we presented our project, which in my opinion went smoothly and In the end, we placed second (out of, I believe 7 teams)!
As with everything there were negatives. First of all, the not-so-serious-one, coffee ran out around the morning hours :D. But now, to the serious ones. Starting with: the event was split into two categories: "Delta students" and "Open to public". I want to emphasize that I really did not like that. I did not know why it was split this way, as a matter of fact, I even thought that it was a joke till the middle of the hackathon! Later, I found out that the organizers thought that we (DELTA) would have unfair advantage, however other students were from IT schools as well, so I feel like the playing field should have been leveled. I feel like if you're going to host a hackathon on IT school and open it to the public, it is expected to compete with other IT schools. Especially, when they took the time to travel there (some were from other regions, and some were even from other countries like Slovakia). Another thing that I wasn't fond of was the lack of creative submissions, and I'm going to blame this one on the organizers, because we were provided with the following instructions: "You can do anything with Pardubice's open dataset, however, here are some closed data that you can use :)". The data that we were given were states of parking spots in Pardubice in real-time/historically. This meant that basically, everyone built a parking system. Some built it with JS/TS, some built it with C#, and some even build it with Rust, however, it was still the same cookie cutter project. And guess what? One of the parking systems won, with the comment that it was the only parking system that contained a payment system (the payment system did not work, but they mentioned that they wanted to implement it eventually, during the presentation). Mind you, Pardubice already had/has a parking system with payments, not only that, but it also has 2 different apps built on top of the data that we got. So, what would I change? Do NOT split the categories, and provide more than one dataset that's already used in milion other apps.
Overall the event was a success and I (and my teammates) had a lot of fun (our and one more group even went to get food from MacDonald's at like 1:00 am). We made something that was cool and tried doing a project in a constrained amount of time.
And how did the app turn out? At first, the app sounded like a good idea, however after the hackathon ended, we thought about it a little bit more and we decided to abandon the project. Mainly because some of the judges, who we thought could help us with a large-scale implementation, didn't think it had a lot of potentials. Anyways, if you want to learn more about the app itself, feel free to visit the project's Github repo for more info (including designs [.fig] and presentation [.pptx]) and source code (js). Also, for Czech readers, the school published a blog post about the event, it's more PR-sounding than this blog post, however I would still encourage you to read it.
Also, I got free stuff like the shirt, pens, note taking notebooks, alza giftcards (top 3 got those), etc... Sooooo, I was more than happy :D -- I'll leave it there and insert a photo proving that I was really there :D
I hope you enjoyed this article/blog post!
If you have any questions, problems or want to start a discussion, don't hesitate and write me an email!