Inspiration
We are both huge soccer fans, and we both have been watching the 2026 FIFA World Cup. In fact, Taemin’s family has already hosted two World Cup match parties. Watching the matches with the guests was an extremely enjoyable experience, but Taemin also realized that the organization was quite difficult; his family had to find a game that all the guests wanted to watch, prepare food for the guests, and set times and dates. That’s why, when we saw that the topic was “automation,” we immediately thought of building a “World Cup Party Organizer.” We thought that party planning could greatly benefit from automation, since it’s all about logistics, and—given the popularity of this year’s World Cup—it seemed reasonable to think that many other people around the world face the same problem of organizing World Cup parties.
What it does
Our app automates the hassle of planning parties. Firstly, hosts enter their location, budget, and maximum number of guests and create a party. Our app then randomly generates a six-character party code that can be sent to guests, allowing them to join. Alternatively, the host can send guests a party join link.
To join, guests enter their name, favorite team, and the dates of upcoming matches they could attend. Once all the guests have joined, our app cross-references their availability and favorite teams to recommend the best match that everyone will be able to attend and enjoy.
The host can then generate a plan that uses the budget to determine a suitable snack menu and builds a music playlist tailored to the match.
How we built it
Our app is a Flask web application. The user interface was built with HTML and CSS, and our backend was coded in Python.
From our experience in previous hackathons, we knew to focus on building a minimal working model. Therefore, the first thing we built was a prototype with a basic UI that included only party creation, party joining, and a simple match recommendation system.
After creating the bare-bones structure, we improved the UI and added additional features, such as food recommendations and music playlist generation.
For both food and music recommendations, we created JSON files containing preset data that allowed the backend to recommend ideal food and music based on the countries playing in each match. Additionally, we used the Football-Data API to dynamically fetch upcoming matches within a one-week period every time the app was launched, ensuring that users had up-to-date selections.
We stored party and guest data using a SQLite database, and we used Render to host our server and deploy our website.
Challenges we ran into
For the UI design, we encountered many issues with sizing and margins that had to be fixed, which meant that styling the app took quite a while. However, we overcame these issues through perseverance. We repeatedly experimented with different values and researched how tools such as flexbox worked.
We originally intended to connect the generated playlist to Spotify, but we realized that we did not have enough time to implement such a potentially difficult feature. Therefore, we chose to keep our current playlist generator and focus instead on polishing the website.
Accomplishments that we're proud of
The app’s UI is clean and professional, making it look like a real application. Additionally, we are proud that the recommendation algorithm selects optimal matches based on the guests’ preferences.
The app also recommends snacks from the participating teams’ countries while ensuring that the food remains within the host’s budget. Finally, it generates a music playlist relevant to the game, consisting of:
- Five World Cup songs
- Five songs from Team 1
- Five songs from Team 2
What we learned
Shreyansh learned how to build Flask applications, specifically how the different layers of a Flask application interact through Flask routes. He also learned how to deploy server-based websites through Render and how to use OAuth for authentication with related services. However, this feature was removed from the final app because we could not use the Spotify API.
Taemin learned how to collaborate with teammates using Git. It had been quite a long time since he had used Git commands, so he repeatedly had to look them up online. Taemin also developed his HTML and CSS skills and discovered how difficult it can be to translate something he visualizes into code.
Taemin was also able to refresh his knowledge of SQL databases. Most importantly, he learned how to communicate effectively with his teammate. Taemin is very thankful to Shrey for putting in his best effort and consistently communicating with him.
Through this project, Taemin learned that a clear separation of roles is key to success in group work. He also realized that when working in teams, some goals must be prioritized and that being unable to achieve every planned feature is not the end of the world.
What's next for our app
We want to expand our idea and automate even more of the party-planning process. Firstly, we want the app to generate playlists directly in Spotify through the Spotify API, which we could not complete within the hackathon timeframe.
We also want to improve the snack selection process. For example, the app could consider guests’ dietary restrictions, favorite foods, and the convenience of preparing each item.
Additionally, we could expand the app beyond the World Cup to include all football matches, which would require integrating additional APIs.
Finally, adding a small chat feature would make communication between hosts and guests easier.
Log in or sign up for Devpost to join the conversation.