Inspiration

Within our friend groups, we would always have this endless "Where should we eat?" question. We wanted to create something that truly understands your taste and gets better over time, while also solving the group decision problem with intelligent consensus-building.

What it does

  • Personalises recommendations using a hybrid machine learning algorithm that combines your explicit preferences with learned patterns from your dining history
  • Solves group decision-making by aggregating multiple users' preferences into fair, balanced restaurant suggestions

How we built it

Frontend: React + TypeScript with Mantine UI components, TanStack Router for navigation, TanStack Query for state management Backend: Node.js + Express with TypeScript, MongoDB Authentication: JWT-based auth with refresh tokens and secure cookie storage External APIs: Google Places API for restaurant data and location services Deployment: RESTful API architecture with comprehensive error handling

Challenges we ran into

Algorithm Complexity: Designing a recommendation system that balances simplicity with effectiveness. We initially tried complex collaborative filtering but simplified to a hybrid approach that's easier to understand and maintain.

State Management: Handling complex user state, group memberships, and real-time preference updates across the application.

Accomplishments that we're proud of

We managed to create a system that actually learns from user behaviour and improves over time and we successfully integrated Google Places API to provide comprehensive restaurant data.

What we learned

We learnt how TypeScript dramatically improves development speed and code quality, and how to manage complex application state with Tanstack Query.

What's next for Where2Eat

We are thinking of advanced group Features: voting systems, compromise tracking, and decision history.

Built With

Share this project:

Updates