Inspiration

We got FOMO from seeing all of our friends get matches on Hinge, but unfortunately, food is our only companion. So while we may never get a date, that doesn't mean we can't go to dinner. Therefore, we decided to build Hinge for restaurants: Palate.

What it does

Whenever we go out to dinner with friends, nobody can ever agree on where to eat. Therefore, we decided to outsource this burdensome task to Gemini! Palate makes hangout planning effortless, eliminating the friction between your friends by using generative AI to reconcile their diverse palates, and decide your dinner. Users can enter a lobby, and select their desired price, portion size, and preferred flavours. Palate then carefully curates a list of nearby restaurants that users can swipe left and right, Hinge style, to vote for their choices. As you and your friends use the app, Palate iteratively builds your individual palate profile to help tailor its recommendations to your unique taste.

How we built it

The frontend was built with react, and the backend was built with Express. The animations were built using framer motion. The recommender logic uses Yelp's API to retrieve restaurant data, and Gemini curates Yelp results to match with user preferences.

Challenges we ran into

Our biggest challenge was coming up with the recommender system to retrieve restaurants that aligned with each member's individual tastes and constraints.

Accomplishments that we're proud of

Not only are we proud of the project as a whole, we were very proud of certain components that we built!

  • Implementing passkey registration and log in was something that we're proud of since it was our first time implementing it and we learned it a lot while doing something difficult.

What we learned

Passwordless authentication (passkey)

What's next for Palate

Our next steps are to improve upon the recommender system and feedback loop to more robustly capture user preferences, and cluster the data to provide more insightful analytics into their tastes. We considered using a vector embeddings to capture semantics about flavour, but we were constrained by time and compute resources.

Share this project:

Updates