EatOut: Stop searching for restaurants. Start finding dishes.

Inspiration

We’ve all been there. It’s 7 PM, your stomach is staging a protest, and the dreaded question hangs in the air: “What’s for dinner?” Finding a place to eat is a universal struggle. You find yourself in a new city, or maybe you're trying to find a spot that accommodates your vegetarian or vegan friends. Suddenly, you’re drowning in a sea of restaurant options, but have no clue what they actually serve.

You don’t want to waste an hour playing digital detective, clicking through dozens of restaurant websites just to find a single vegan dish. So, you turn to the usual suspects. But apps like Google and Yelp often feel like they’re suggesting the same five chain restaurants on a loop, prioritizing whoever paid the most for visibility. You try OpenTable or Resy, but they’re more interested in your reservation time than the delicious details of the menu. Before you know it, you’re 30 minutes deep into a Reddit thread, desperately hoping a stranger from two years ago has the answer. It’s a common frustration that can turn a fun night out into a chore.

This exact scenario was our reality one too many times. We were tired of the endless runaround—consulting maps, visiting websites, scanning menus—just to find a decent meal. We thought, "Why do apps suggest places when what we really want are dishes?" To solve our own problem (and hopefully yours!), we created EatOut: the first app, to our knowledge, that cuts through the noise and suggests specific dishes based on what you’re actually craving.

How We Built EatOut

As a team with a background in mechanical engineering, our coding experience was... let's say, "humble." But once we knew we had a worthwhile problem to solve, we embraced the challenge and used our existing knowledge—and the powerful AI tools at our disposal—to turn our idea into a reality.

The Tech Stack

Frontend: Next.js 14, React, TypeScript, Tailwind CSS Backend: Python, Flask Database: SQLite AI & Parsing: Google Gemini Deployment: Vercel (Frontend), Render (Backend)

Backend: Taming the Menu Madness

Our first challenge was gathering the data. After crawling multiple restaurant websites and extracting their raw HTML, we were left with a chaotic mess. Menus live in the Wild West of web design; there's no standard format.

This is where AI became our hero. We used Google Gemini to parse the unstructured HTML data and intelligently extract crucial information—dish names, descriptions, prices, and tags—into a clean JSON format. But it didn't stop there. Gemini also acted as our digital sous-chef, filling in any missing menu item data, like generating appealing descriptions or estimating calorie counts with reasonable values. This structured information was then stored in an SQLite database.

With our data pipeline established, we built our API using Flask to create the necessary endpoints. Getting the backend online was an adventure in itself, but we successfully deployed it on Render, making our dish data accessible to the world.

Frontend: Making It Look Delicious

For the frontend, we wanted an experience as slick as our backend was smart. We chose Next.js 14 with React and TypeScript to build a modern, responsive, and interactive user interface.

Tailwind CSS allowed us to style components rapidly, and we added custom gradients and animations to give the app a polished, dynamic feel. You can just describe what you feel like eating, and EatOut will serve up suggestions.

Challenges We Faced

As first-timers building a full-stack application from scratch, we hit plenty of walls. On the backend, designing the database schema, creating a robust API endpoint, and navigating the deployment process on Render involved a lot of late-night brainstorming and troubleshooting.

The frontend presented its own set of hurdles. Implementing sophisticated state management for the search flow—transitioning smoothly from search, to loading, to results—was a complex puzzle. Connecting to our backend API and gracefully handling loading states, errors, and fallback scenarios was another significant challenge that pushed us to write better, more resilient code.

What We Learned

This project was an incredible learning experience. We dove headfirst into technologies that were completely new to us and came out the other side as full-stack developers. We gained practical experience in: Frontend Development with Next.js, React, and TypeScript. Backend Development using Python and Flask. Database Management with SQLite. Cloud Deployment on both Vercel and Render.

Most importantly, we learned how to leverage AI not just as a novelty, but as a powerful tool to solve a real-world data problem that would have been nearly impossible to tackle manually.

What's Next for EatOut?

We are incredibly proud of what we've built, but we're just getting started! We see a bright future for EatOut, with potential features like:

  • Direct in-app ordering and reservations.
  • A dedicated mobile app with dish images and user reviews.
  • Monetization through non-intrusive ads to keep the service running.

Whether it becomes a business or remains a passion project, we hope EatOut helps more people discover amazing food, avoid decision fatigue, and simply enjoy their meals.

Built With

Share this project:

Updates