Project Info
This project did not submit a demo video on Devpost.
Inspiration
We all love food. But trying to eat healthy? That’s where things get complicated. Ever tried searching for a “healthy burger” and ended up with a quinoa patty sadness? Yeah, same. We built IdealMeal to fix that — to make eating better as simple (and satisfying) as your favorite takeout order. No guilt trips, no flavor sacrifices. Just straight to the good stuff.
What it does
IdealMeal is your personal food GPS for healthier choices. Craving a burger? We’ll guide you to the best grass-fed, organic masterpiece nearby. Want to cook something at home? Here's a recipe that swaps the junk for fresh, tasty ingredients — without tasting like cardboard. Whether it's a restaurant, a recipe, or a grocery run, IdealMeal connects your cravings to your health goals — instantly.
How we built it
We started with a big idea and broke it down bite by bite. The frontend’s built in React for a slick, responsive feel. On the backend, Python + Flask do the heavy lifting. We integrated Google’s Gemini AI to actually understand your cravings (because “salad” doesn’t always mean the same thing). Google Places API finds local options, and MongoDB tracks what you like, so it only gets smarter over time. It’s a tasty tech stack — just like our meals.
Challenges we ran into
Where do we begin? Training AI to understand food cravings is like teaching a robot what "comfort food" feels like — not easy. Some early results included recommending kale chips for pizza cravings (rude). Then there was the rabbit hole of broken recipe links, closed restaurants, and overcomplicated interfaces. Our mantra became “make it smart, but make it simple.” Easier said than done — but we got there. Accomplishments we're proud of It works. Like, actually works. You tell IdealMeal what you’re in the mood for, and it shows you a healthier way to get there — whether it’s a nearby restaurant or a recipe you’ll actually want to cook. The interface is clean and user-friendly, and we’ve got a solid, growing base of verified recipes and places. Best part? It makes eating better feel less like a chore and more like a win.
What we learned
People want to eat better — they just don’t want to spend 30 minutes hunting for that one decent recipe or driving across town for a sad salad. We learned that AI is powerful, but needs some human flavor to be truly helpful. We also discovered how big the demand is for something that makes healthy eating simple, accessible, and, most importantly, delicious. Bonus: we now know way more about food nutrition than we ever expected (ask us anything about fiber... please don’t).
What's next
We’re just getting warmed up. We’re expanding our restaurant and recipe database daily. Up next? A feature to share your favorite finds with friends, social discovery, and personalized meal planning that actually makes sense. A mobile app is on the horizon (because healthy decisions should be pocket-sized). Long-term, we want to go global — healthy food should be easy to find, no matter where you are. Healthy eating shouldn't feel like a punishment — and with IdealMeal, it finally doesn't.
IdealMeal
Your personal guide to healthier eating, connecting you directly to healthier alternatives for any food craving.
Features
- Find healthier restaurant options near you
- Access healthy recipes from trusted sources
- Personalized recommendations based on your preferences
- Filter by health goals and dietary restrictions
- Clean, intuitive interface
Prerequisites
- Python 3.8 or higher
- Node.js 14 or higher
- MongoDB
- Google Places API key
- Google Gemini API key
Installation
Backend Setup
- Clone the repository:
git clone https://github.com/yourusername/idealmeal.git
cd idealmeal/backend
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install Python dependencies:
pip install -r requirements.txt
- Set up environment variables:
Create a
.envfile in the backend directory with:
MONGODB_URI=your_mongodb_uri
GOOGLE_PLACES_API_KEY=your_google_places_api_key
GOOGLE_GEMINI_API_KEY=your_gemini_api_key
JWT_SECRET=your_jwt_secret
Frontend Setup
- Navigate to the frontend directory:
cd ../frontend
- Install Node.js dependencies:
npm install
- Create a
.envfile in the frontend directory:
REACT_APP_API_URL=http://localhost:5000
Running the Application
Start the Backend Server
- Make sure you're in the backend directory and your virtual environment is activated
- Run the Flask server:
python app.py
The backend server will start on http://localhost:5000
Start the Frontend Development Server
- Make sure you're in the frontend directory
- Start the React development server:
npm start
The frontend will start on http://localhost:3000
API Documentation
The backend API documentation is available at http://localhost:5000/api/docs when the server is running.
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Google Places API for location services
- Google Gemini AI for intelligent recommendations
- All the amazing recipe websites that make healthy eating possible
Support
For support, email support@idealmeal.com or open an issue in the GitHub repository.
Analysis
View
Metric
- 23
- 17
- 12
- 3
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FlaskIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- AWSClaimed
- Google GeminiClaimed
- MongoDBClaimed
6 of 9 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
150 KB
Source files
53
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
vineeshah/IdealMeal
70 files · 13.3 MB · @ c07e618
Structure
Interface
10 files · 14%Screens, components and styles rendered to the user.
API & routing
6 files · 9%Request entry points: routes, handlers and controllers.
Application logic
29 files · 41%Domain rules, services and shared utilities.
Data & schema
5 files · 7%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python46%
- JavaScript29%
- CSS20%
- Markdown4%
- HTML1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 48- annotated-types
- bcrypt
- blinker
- cachetools
- certifi
- charset-normalizer
- click
- dnspython
- Flask
- Flask-Bcrypt
- flask-cors
- Flask-JWT-Extended
- Flask-PyMongo
- google-ai-generativelanguage
- google-api-core
- google-api-python-client
- google-auth
- google-auth-httplib2
- +30 more
frontend/package.json
npm · 9- @testing-library/dom
- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- react
- react-dom
- react-router-dom
- react-scripts
- web-vitals
package.json
npm · 1- gsap
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.