TasteLens Inspiration We've all been there - standing on a street corner with friends, endlessly scrolling through Yelp reviews, unable to decide where to eat. Or traveling in a foreign country, staring at a restaurant sign you can't read, wondering if it's any good. We built TasteLens to solve both problems: instant restaurant intelligence through your camera, in any language, with group decision-making built in.

The inspiration came from three pain points:

Decision paralysis - Groups waste 20+ minutes deciding where to eat Language barriers - Traveling abroad means missing out on hidden gems because you can't read signs or reviews Context switching - Jumping between camera, translator, and review apps is tedious What it does TasteLens is an AI-powered restaurant discovery app that lets you:

πŸ“Έ Point & Discover - Scan any restaurant, storefront, or menu with your camera. Our vision AI identifies the business and instantly pulls ratings, reviews, and an AI-generated summary.

🌍 Speak Any Language - Full support for 11 languages (English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Hindi, Arabic). Voice input, translated responses, and text-to-speech β€” all seamless.

πŸ‘₯ Decide Together - Create a group, invite friends via link, scan restaurants, share them to the group, and vote. The restaurant with the most votes becomes the "Top Pick."

🎀 Voice-First - Talk to TasteLens like a friend. Ask "What's good for sushi nearby?" and get spoken responses in your language.

How we built it Backend (Python/Flask):

Yelp AI Chat API for conversational restaurant recommendations Yelp Fusion API for business details and reviews OpenAI GPT-4o-mini for real-time translation OpenAI GPT-4.1-mini for vision/image analysis OpenAI Whisper for speech-to-text OpenAI TTS for text-to-speech In-memory group state management with polling Frontend (Vanilla JS):

Mobile-first responsive design WebRTC for live camera access MediaRecorder API for voice input Real-time group chat with long-polling Key Architecture Decisions:

All Yelp queries go through English (translate user input β†’ Yelp β†’ translate response back) for consistent results TTS audio caching to reduce API calls Session-based language persistence Challenges we ran into Yelp API only speaks English well - We discovered Yelp's AI gives better results in English, so we built a translation layer that converts user queries to English, gets results, then translates back. The user never notices.

Camera permissions on mobile - Getting WebRTC to work consistently across iOS Safari, Android Chrome, and desktop browsers required careful handling of permission flows and fallbacks.

Group state without a database - For the hackathon, we used in-memory storage for groups. This meant handling edge cases like server restarts gracefully (detecting expired sessions and prompting users to rejoin).

Real-time feels hard - We wanted instant group updates but WebSockets felt like overkill. Long-polling with smart diffing gave us "real-time enough" with simpler code.

Mobile viewport issues - The live camera view fighting with iOS Safari's address bar and safe areas required extensive CSS tweaking.

Accomplishments that we're proud of βœ… End-to-end multilingual experience - From voice input to translated responses to spoken output, it actually works in 11 languages

βœ… The "wow" moment - Pointing your camera at a restaurant and getting instant reviews never gets old

βœ… Group voting that's actually fun - The heart button + "Top Pick" badge makes deciding feel like a game

βœ… No sign-up required - Jump straight in. Groups are shareable via link. Zero friction.

βœ… It runs on a phone - Fully responsive, camera-first mobile experience

What we learned Yelp's AI API is powerful - The conversational restaurant recommendations are genuinely good Translation is a UX challenge - It's not just about translating text; it's about knowing what to translate (AI summaries yes, business names no) Mobile web can do a lot - WebRTC + MediaRecorder + geolocation = native-like experience without an app store Scope creep is real - We cut features (persistent groups, user accounts, menu scanning) to ship something complete What's next for TasteLens πŸ—„οΈ Persistent groups - Redis/PostgreSQL backend so groups survive server restarts

πŸ“· Menu scanning - Point at a menu, get dish recommendations based on reviews

πŸ—ΊοΈ AR overlay - Show ratings floating above restaurants as you walk down the street

🍽️ Dietary filters - "Show me vegan-friendly places" with voice

πŸ“± Native apps - PWA or React Native for push notifications when someone shares a restaurant

🀝 Integration - Share the winning restaurant directly to Google Maps, Uber, or your calendar

Built with β˜• and πŸ• by Mihir and Muntaser

Built With

Share this project:

Updates