DineSync
Inspiration
"Where should we eat?" It's the question that has sparked countless debates, delayed dinner plans, and left someone in the group unhappy with the final choice.
We've all been there: endless group chat messages, conflicting preferences, dietary restrictions, budget constraints, and decision fatigue. Someone always ends up compromising too much, and the person who suggested the restaurant feels guilty if others don't enjoy it.
Meanwhile, Yelp's AI technology was revolutionizing how we discover restaurants. We asked ourselves: "What if AI could solve group dining decisions by ensuring everyone's preferences matter equally?"
That's how DineSync was born.
What it does
DineSync is an AI-powered group dining consensus platform that transforms the chaotic "where should we eat?" debate into a fair, transparent, and fast decision-making process.
Core Workflow:
- Create Session - Host enters dining location and gets a shareable link
- Collect Preferences - Each person submits cuisines, dietary needs, budget, distance, and ambiance preferences
- Find Restaurants - Yelp AI searches for restaurants matching all criteria
- Rank by Fairness - Custom algorithm ensures no one is left behind (70% average + 30% minimum satisfaction)
- Visual Feedback - Individual satisfaction meters (0-100%) show who's compromising
- AI Conversation - Ask questions about each restaurant to make informed decisions
Professional Features:
- Real-Time Collaboration - Auto-refresh shows when friends submit preferences (5-second polling)
- Fairness-Weighted Algorithm - 70/30 split maximizes group happiness while protecting individual satisfaction
- Satisfaction Meters - Visual transparency for each person's happiness level
- Dietary Safety - Hard enforcement of restrictions (violation = 0% score)
- Veto Power - Absolute dealbreakers for allergies or strong dislikes
- AI Conversation Mode - Context-aware answers about location, ambiance, dietary options
- Compromise Indicators - Shows who's making the biggest sacrifice
- Top 10 Results - Ranked by group satisfaction with detailed breakdowns
- Multi-Cuisine Support - 2-3 restaurant variations per selected cuisine
- Booking Integration - Reserve tables through Yelp AI (simulated)
How we built it
Tech Stack:
- Frontend: Streamlit 1.37+ (Interactive multi-page web UI)
- Backend: Python 3.11 (Application logic & services)
- AI Engine: Yelp AI Chat API (Restaurant search & intelligent matching)
- Consensus: Custom Fairness Algorithm (70/30 weighted scoring)
- Validation: Pydantic 2.8+ (Data validation & models)
- Session Management: JSON Files (Multi-user coordination)
- Package Manager: uv (Fast dependency management)
- Deployment: Streamlit Cloud (Production hosting)
Architecture:
We built a modular, production-ready system with clear separation of concerns:
Service Layer:
yelp_ai_client.py- API communication with Yelp AIconsensus_engine.py- Fairness-weighted group scoring algorithmsession_manager.py- Multi-user session coordinationperformance_metrics.py- API performance tracking & monitoring
Data Layer:
config.py- Environment configuration & settingssessions.json- Active sessions with participant data- Pydantic schemas for type safety and validation
Application Layer:
dinesync_app.py- Main Streamlit app (900+ lines)- Multi-page flow: Create → Join → Results
- Real-time state management with auto-refresh
Development Process: Session management → Preference collection → Yelp AI integration → Consensus algorithm → Visual feedback → AI conversation mode → Production deployment
Challenges we ran into
1. Group Consensus Algorithm Design
- Challenge: How to balance overall group happiness with individual satisfaction?
- Solution: Researched voting theory and fairness algorithms, settled on 70/30 weighted scoring
- Result: Prevents "tyranny of the majority" while maximizing overall satisfaction
2. Multi-User Session Coordination
- Challenge: Streamlit is stateless; how to coordinate multiple users in real-time?
- Solution: JSON-based session storage with auto-refresh polling every 5 seconds
- Result: Seamless real-time collaboration without WebSockets or database
3. Dietary Restriction Enforcement
- Challenge: Yelp AI doesn't always return dietary information consistently
- Solution: Hard requirement validation - any violation results in 0% score
- Result: Safe recommendations that respect all dietary needs
4. Yelp AI Query Optimization
- Challenge: How to query for multiple cuisines without overwhelming results?
- Solution: Strategic OR queries with 2-3 variations per cuisine, explicit dietary requirements
- Result: Diverse restaurant options (6-15 results) that match group preferences
5. Satisfaction Score Transparency
- Challenge: Users need to understand why a restaurant was ranked higher/lower
- Solution: Individual score breakdowns with visual meters and compromise indicators
- Result: Transparent decision-making that builds trust in recommendations
6. AI Conversation Context
- Challenge: Generic AI responses don't help users make decisions
- Solution: Context-aware prompts with restaurant details, location, and user preferences
- Result: Detailed, actionable answers about ambiance, dietary options, and recommendations
Accomplishments that we're proud of
Technical Excellence:
- ✅ Fully functional, production-ready application deployed live
- ✅ Clean, modular architecture with clear separation of concerns
- ✅ Novel fairness-weighted consensus algorithm (70/30 split)
- ✅ Real-time multi-user coordination without database
- ✅ Robust error handling and edge case management
- ✅ Intelligent prompt engineering for consistent AI responses
- ✅ Zero external database dependency (JSON-based persistence)
Product Innovation:
- ✅ Solves universal problem that affects millions of dining decisions daily
- ✅ First app to use Yelp AI for multi-user group consensus
- ✅ Fairness algorithm ensures no one is left behind
- ✅ Visual satisfaction meters provide transparency
- ✅ AI conversation mode for informed decision-making
- ✅ Veto power for absolute dealbreakers
- ✅ Compromise indicators show who's sacrificing
User Experience:
- ✅ Intuitive 3-page flow anyone can use
- ✅ Shareable links for seamless group coordination
- ✅ Auto-refresh shows real-time participant updates
- ✅ Expandable results with top 3 expanded by default
- ✅ Mobile responsive design works on all devices
- ✅ Immediate feedback with clear visual indicators
Business Value:
- ✅ Addresses universal pain point in social dining
- ✅ Viral potential through shareable links and network effects
- ✅ Solves recurring problem (not one-time use)
- ✅ Scalable to any location with Yelp coverage
- ✅ Reduces decision fatigue and social friction
What we learned
Technical Insights:
- Fairness Algorithms Matter: Simple weighted scoring (70/30) outperforms complex voting systems
- State Management is Critical: Proper session state handling enables real-time collaboration
- Prompt Engineering for Diversity: Explicit "2-3 variations per cuisine" prevents repetitive results
- Hard Requirements Work: Zero-tolerance for dietary violations ensures safety
- Visual Feedback Builds Trust: Satisfaction meters make algorithm decisions transparent
Product Lessons:
- Solve One Problem Well: Better to excel at group consensus than add mediocre features
- Transparency Drives Adoption: Users trust recommendations when they see individual scores
- Real-Time Matters: Auto-refresh creates sense of collaboration even without WebSockets
- Veto Power is Essential: Absolute dealbreakers (allergies) need special handling
- AI Conversation Adds Value: Context-aware answers help users make informed decisions
Business Learnings:
- Universal Pain Point: Everyone has experienced the "where should we eat?" debate
- Network Effects: More users in a session = more value for everyone
- Viral Potential: Shareable links encourage organic adoption
- Recurring Use Case: Groups dine together repeatedly, creating retention
- Market Validation: Friends immediately understood and wanted to use it
What's next for DineSync
Short-term (Next 3 months):
- [ ] Persistent Storage - Database instead of JSON files for scalability
- [ ] User Accounts - Save favorite restaurants and past sessions
- [ ] Enhanced AI Explanations - Why each restaurant was ranked where it was
- [ ] Mobile App - Native iOS/Android apps for on-the-go decisions
- [ ] Advanced Filters - Parking, outdoor seating, noise level, wait times
- [ ] Group Chat Integration - Slack, Discord, WhatsApp bots
Medium-term (3-12 months):
- [ ] Calendar Integration - Schedule dinners with group availability
- [ ] Split Bill Calculator - Handle different budgets fairly
- [ ] Dietary Preference Learning - AI learns from past choices
- [ ] Historical Analytics - Track group dining patterns
- [ ] Reservation Confirmation - Real booking through Yelp API
- [ ] Multi-Language Support - International markets
- [ ] Restaurant Recommendations - AI suggests new places based on history
Long-term (1-2 years):
- [ ] Real-Time WebSockets - Instant updates without polling
- [ ] Caching Layer - Redis for faster restaurant lookups
- [ ] A/B Testing - Optimize consensus algorithm weights
- [ ] Analytics Dashboard - Usage metrics and insights
- [ ] API for Third-Party Integrations - Embed in other apps
- [ ] Enterprise Features - Corporate team lunches, event planning
- [ ] Performance Correlation - Track if recommendations led to satisfaction
- [ ] Multi-City Support - Plan dining across multiple locations
GitHub: https://github.com/ankitlade12/DineSync
Making group dining decisions fair, fast, and fun!


Log in or sign up for Devpost to join the conversation.