Inspiration
As someone who is passionate about health and fitness, I’ve always tracked my macronutrients and aimed to hit specific protein goals. When I arrived at Virginia Tech as a freshman, I realized that while the dining website listed the nutrition facts for each food, it was difficult to navigate and nearly impossible to plan exact meals to meet my goals because of the wide variety of options. That’s where the idea for this app came from — I knew many students faced the same challenge, especially freshmen who don’t have the ability to cook their own meals.
What it does
The app scrapes data from the Virginia Tech Dining website every morning at 6 AM and stores it in a JSON file. It then filters through the data to calculate the most protein-dense foods available that day, while checking whether they fit within the nutrition limits set by the user. If a food meets the criteria, it’s added to a personalized list of meal options that the user can choose from for the rest of the day.
How we built it
Building the app was a bit tricky at first since we weren’t sure which tech stack to use. Our initial idea was to use Flutter for the front end so the app could work cross-platform, but we quickly realized that was too ambitious for the limited time we had during the hackathon. Instead, we chose Swift, since most Virginia Tech students use iPhones over Android devices. For the backend, we used Python because it was the most efficient way to scrape, filter, and normalize the dining data.
Challenges we ran into
One of the biggest challenges we faced was creating an algorithm that could balance both calorie and protein limits. At first, our algorithm only optimized for one nutrient at a time, which caused major overshoot issues — for example, ignoring calorie limits and suggesting unrealistic protein goals. We fixed this by designing a function that first checks protein density and stops adding protein-heavy foods once the target is reached. Then, a calorie function fills in the remaining calories by suggesting foods that bring the user within 95% of their daily goal.
Accomplishments that we're proud of
The accomplishment we’re most proud of is the algorithm we built. As mentioned above, it was a major challenge to get right and required extensive debugging, but the end result was well worth the effort. Another big win for us was developing our web scraping script — none of us had prior experience with web scraping before the hackathon, so getting it to work successfully was a huge milestone.
What we learned
We learned how to design a successful system and the process required to implement it from start to finish. Along the way, we explored different algorithms such as the Knapsack algorithm, which taught us the importance of optimization when programming. We also gained hands-on experience with REST APIs and learned how to connect a Python backend to a Swift frontend, which gave us a much better understanding of how different parts of a system work together. On the front end, we learned the basics of UI design in SwiftUI and how to make an app both functional and user-friendly. Finally, we learned how valuable collaboration and debugging strategies are when working under time pressure, and how generative AI can be leveraged to speed up development.
What's next for HokieFuel
HokieFuel is a highly scalable project with lots of potential. Right now, our algorithm focuses primarily on protein-dense foods, but in the future we plan to expand it to include fiber, carbs, sodium, and other nutrients. This will allow users to set custom limits tailored to their individual diets. Another direction is integrating HokieFuel with other universities’ dining services, giving more students the ability to make informed choices and take better control of their nutrition.
Built With
- beautiful-soup
- foundationdb
- pydantic
- python
- restapi
- swift
- swiftui

Log in or sign up for Devpost to join the conversation.