FoodQuest

Sep 202448-Hour uOttawa Hackathon

FoodQuest

Inspiration

One of our team members volunteered at a local food bank and noticed a significant lack of community participation. Inspired by that experience, we set out to make food donation more engaging and rewarding by gamifying the process: a leaderboard, a ranking system, and personal profiles where contributors can track their impact and see what others have donated.

What It Does

Foodbank AI uses computer vision to recognize foods that can be donated to a food bank and assigns a score based on how non-perishable and nutritious each item is. Users compete with each other to reach the top of the leaderboard, turning an act of charity into a friendly community challenge.

How We Built It

We divided responsibilities across the team to move fast. The AI component uses ResNet as a pretrained model that we fine-tuned on food images to increase recognition accuracy. We integrated the FoodData Central API to retrieve nutritional facts for each recognized item, then applied a custom scoring formula to translate those facts into leaderboard points.

The backend runs on Flask connected to a PostgreSQL database. The frontend is built in React with Figma used for UI design. We tested the vision model live by pointing webcams at fruit on our desks.

Challenges

None of us had any prior experience with computer vision, so learning to preprocess image data and fine-tune a model under a 48-hour deadline was a real challenge. We also ran into several merge conflicts as the team worked in parallel; we resolved them by moving to isolated feature branches and merging carefully.

Accomplishments

The moment the model successfully identified food from a webcam photo for the first time was genuinely satisfying. Shipping a complete, working product in 48 hours with a team that had never worked together on computer vision before was a milestone we are all proud of.

What We Learned

  • How to preprocess and clean images as training data for a computer vision model
  • How to fine-tune a pretrained model (ResNet) for a custom classification task
  • How to build and connect a Flask backend to a React frontend
  • How to work as a team under tight time pressure with parallel workstreams

What's Next

  • Curate more training data to improve model accuracy across a wider range of foods
  • Improve the UI with more polished design and smoother interactions
  • Add user authentication via Firebase

Technologies

PyTorchResNetFlaskPostgreSQLReactFoodData Central APIFigma