Inspiration
Dishcovr was inspired by a simple but common experience: going to a restaurant serving a smaller, more niche cuisine and realizing that the biggest barrier is not willingness to try something new, but uncertainty. Many menus assume a level of cultural or culinary familiarity that the average diner may not have, so people often end up ordering the one dish they recognize, searching every item one by one on their phone, or avoiding the restaurant altogether. We wanted to make unfamiliar menus feel accessible and exploration feel exciting rather than intimidating.
What it does
Dishcovr turns a photo of a restaurant menu into an interactive, visual menu. A user uploads a menu image, and the app parses each dish, extracts the name, price, and description, translates when needed, and presents the information in a much more intuitive format. It also helps users understand what dishes generally are and highlights especially popular dishes, making it easier to compare options and order with confidence.
How we built it
We built the app as a full-stack web experience with a React frontend and a custom Node backend written in TypeScript. On the frontend, users upload one or more menu images, and the app turns the parsed results into polished dish cards with images, descriptions, cart controls, and multilingual ordering support. On the backend, we use Google Gemini for menu understanding, translation, dish-description enhancement, and dish query refinement. We validate request shapes with Zod, use TheMealDB, Wikipedia, and Pexels as food-image sources, and use ElevenLabs for text-to-speech for spoken order scripts. The app is designed to run as a simple Node service with static assets, which makes it easy to deploy from GitHub to a platform like Render.
Challenges we ran into
One of the biggest challenges we ran into was deciding how to identify a restaurant’s most popular dishes in a way that felt credible. Unlike menu parsing, this required us to go beyond the menu itself and find outside signals from real customer behavior, which meant figuring out how to access and work with web-based review data. That turned out to be harder than expected, since many review platforms have limited APIs, pricing restrictions, or very narrow access to review text. We spent a lot of time evaluating different options before ultimately integrating the Foursquare Places API as our source for place tips and review-like data. From there, we built logic to connect those external mentions back to the dishes on the uploaded menu, which let us surface likely favorites in a way that was grounded in actual public feedback rather than just guessing.
Accomplishments that we're proud of
We’re proud that Dishcovr grew beyond a simple menu parser into a much more thoughtful accessibility and discovery tool. We built a system that can take a raw menu photo and turn it into structured dish information, including names, prices, descriptions, and translations when possible. But what we’re especially proud of is the additional functionality we layered on top of that core pipeline to make the app genuinely useful in a real restaurant setting. One feature we’re proud of is allergen detection, which helps flag dishes that may contain common allergens or dietary concerns based on the menu description. We’re also proud of building text-to-speech support for ordering in different languages, which makes Dishcovr helpful not just for understanding a menu, but for actually navigating the ordering experience more confidently when there is a language barrier. In addition, we explored features like surfacing popular dishes and making menus more visually intuitive, so users are not stuck deciphering long blocks of unfamiliar text.
What we learned
We learned that a strong technical project is not just about using AI, but about building a system around it. We also learned how difficult it is to turn messy real-world visual inputs into structured, usable product outputs. Beyond the technical side, we learned how much product design matters: even a powerful backend needs a clear, intuitive interface to actually help users.
What's next for Dishcovr
Next, we want to improve parsing accuracy, strengthen multilingual support, and make popular-dish recommendations more robust. We would also like to expand the visual side of the app, improve dish matching, and build a more personalized recommendation system so users can filter by dietary preferences, spice level, or familiarity. Long term, we see Dishcovr as a tool that helps more people discover and enjoy cuisines they might otherwise overlook.
Built With
- elevenlabs
- gemini
- javascript
- react
- typescript


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