Inspiration

Our friend group struggles all the time to find food for our friends.

What it does

Food Finder helps overcome this issue by letting you join a jackbox inspired lobby, where you can put in food preferences and the app will recommend places around you.

How we built it

We built Food Finder using React 19, Vite, and Tailwind CSS for a responsive, neo-brutalist mobile frontend paired with a high-performance FastAPI (Python) backend powered by asynchronous WebSockets. Friends join 6-character room codes where our event-driven server synchronizes preference submissions and live voting tallies with automatic reconnection and multi-round room transitions. Under the hood, the backend calculates the group's geographic midpoint, queries the Google Places API (New), and runs candidate restaurants through a custom vector consensus algorithm that evaluates semantic cuisine overlap, enforces strict price tiers ($ to $ $ $ $), blocks dietary vetoes, and applies a calibrated distance weighting to reward nearby spots without overshadowing strong group consensus. The entire full-stack application is containerized with Docker Compose and served via an Nginx reverse proxy on a DigitalOcean droplet.

Challenges we ran into

The challenges we ran into was the food recommendations, as a lot of the Google Places API categorized restaurants as separate categories as "Fast Food Restaurants", and some restaurants didn't have a price associated with them. So we had to adjust our logic to include those data points.

Accomplishments that we're proud of

We were able to make a recommendation model based on vector dot products and weights, for weighted similarities. All while deploying the app so us and our friends can actually join the project and try it out!

What we learned

Perseverance. We struggled a lot in that phase in trying to find out why certain restaurants that we new should be popping up under the criteria weren't popping up. So being able to just lock in and try and bug fix for very niche issues.

What's next for Food Finder

Currently we have no way to reroll suggestions if we don't like the initial recommendations. We currently wanted to keep the compute as small as possible, so we only load the top 3 recommendations onto the browser, so we have no way for people to change recommendations.

Built With

Share this project:

Updates

Submission history