Decide where to eat, together. CraveCompass is an open-source, real-time collaborative platform designed to solve the age-old group debate: "Where should we eat?" Currently, CraveCompass features a real-time, multiplayer Tinder-style swiping deck where groups can anonymously swipe on local restaurants until a consensus is reached.
🌍 Live Application: https://cravecompass.ddokubi.ovh/
CraveCompass is rapidly evolving from a single game mode into a comprehensive, gamified dining toolkit. Our development is organized into four major phases:
- 🟢 The Swiping Deck: Real-time, synchronized WebSocket consensus matching. (Live)
- 🟡 Pre-Game Lobby Filters: Empowering the host to fine-tune the deck (Distance, Price Tier
$$$, Specific Cuisines, Dietary Restrictions, Minimum Rating). - 🟡 Rich Data Enrichment: Seamless integration with Google Places API for high-resolution photos, real-time opening hours, and authentic reviews.
- ⚪ Post-Match Routing: Direct deep-links to Apple Maps, Google Maps, and Uber upon reaching a group consensus.
- ⚪ User Accounts & Authentication: Secure sign-up/login system.
- ⚪ Taste Profiles & Tags: An algorithm that learns from your swipes to build a unique "Taste Profile" (e.g., Late Night Eater, Vegan, Spicy Food Lover).
- ⚪ Dining History & Saved Favorites: Keep track of past group winners and save personal favorites.
- ⚪ Achievements & Badges: Gamify the experience with unlockable badges (e.g., The Picky Eater, Consensus Maker, Sushi Fiend).
- ⚪ Saved Groups: Quickly spin up a room for your "Office Lunch Crew" or "Friday Night Friends" without sending individual links.
- ⚪ Bracket-Style Tournaments: A March-Madness style bracket where the group votes head-to-head on restaurants until a champion is crowned.
- ⚪ Ranked Voting: For serious foodies—rank your top 5 choices, and the engine calculates the fairest winner.
- ⚪ "Surprise Me" Roulette: Skip the swiping completely and let the algorithm take the wheel for adventurous groups.
- ⚪ Smart Group Recommendations: AI-curated restaurant lists generated by intersecting the historical "Taste Profiles" of everyone currently in the room.
- ⚪ Native Mobile Application: Rebuilding the web client into a native iOS/Android application for a smoother, app-store-ready experience.
- ⚪ Push Notifications: Instant alerts for "Room Created" or "Consensus Reached!".
CraveCompass is built with a modern, microservice-inspired architecture utilizing Go, Next.js, and WebSockets, all deployed seamlessly via GitOps.
- 🖥️
clients: The frontend ecosystem. Built with Next.js, React, and tailored for a native mobile-first feel. - ⚙️
api: The high-performance engine. Written in Go, handling real-time WebSocket state, geospatial PostGIS queries, and background OpenStreetMap data enrichment. - ☁️
infrastructure: The DevOps backbone. Contains our Docker Compose configurations and deployment manifests, automatically synced to our production environment.
We believe in clean code, automated CI/CD, and strict trunk-based development.
To contribute to CraveCompass:
- Fork the relevant repository.
- Create a feature branch (
git checkout -b feature/amazing-new-mode). - Commit your changes (
git commit -m 'feat: add amazing new mode'). - Push to the branch (
git push origin feature/amazing-new-mode). - Open a Pull Request against our
mainbranch using the provided PR template.
All PRs must pass automated CI checks before being reviewed by a maintainer.