ChefGPT is an AI-powered recipe recommender web application that transforms the ingredients you already have into delicious, step-by-step recipes in seconds.
Built with a modern, scalable tech stack, ChefGPT blends seamless authentication, powerful AI integration, and a beautiful, responsive UI to make cooking inspiration accessible anytime.
-
🔐 Authentication
Secure sign-in with better-auth supporting email/password and Google Sign-In. -
💾 Data Persistence
Store user profiles and favorite recipes in MongoDB Atlas for secure, cloud-based persistence. -
🤖 AI-Powered Recipe Suggestions
Generate up to 5 personalized recipes based on your ingredients and dietary preferences using Vercel AI SDK + Google Gemini API. -
✅ Robust Form Validation
Built with vee-validate and Zod for schema-based, error-proof user input. -
📑 Structured AI Responses
Recipes are parsed into a clean, easy-to-read format — including ingredients, preparation steps, and estimated cooking times. -
❤️ Favorites System
Save your go-to recipes for quick access anytime. -
Rate Limiting wih Upstash
-
Error Monitoring and Tracing With Sentry
-
🎨 Modern UI & Animations
Designed with Nuxt.js, Tailwind CSS, and shadcn-vue for a sleek, responsive, and accessible experience with smooth animations.
Frontend
- Nuxt.js v3 — Vue based meta framework
- Tailwind CSS v4 — Utility-first styling
- shadcn-vue — Modern UI components
- Pinia — State management
Backend / Auth / Database
- MongoDB & MongoDB Atlas — Cloud database
- better-auth — Authentication service
- Upstash
- Sentry
AI Integration
Validation
Deployment
- Netlify — Frontend hosting
Clone the repository and run locally:
git clone https://github.com/Andualem/ai-recipe-recommender.git
cd ai-recipe-recommender
pnpm install
pnpm devThe app will be available at http://localhost:3000.
Create a .env file in the root directory and configure the following variables:
MONGODB_URI=your_mongodb_atlas_connection_string
BETTER_AUTH_SECRET=your_auth_secret
BETTER_AUTH_URL=http://localhost:3000
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GEMINI_API_KEY=your_google_gemini_api_keyContributions, ideas, and suggestions are welcome! Feel free to fork the repository and submit a pull request. Or clone it and extend and customize for your use case.
This project is licensed under the MIT License.
