Your AI-powered kitchen companion that suggests delicious recipes based on ingredients you already have.
Demo • Features • Installation • Usage • Architecture • Deployment
Chef Bot is an AI-powered web application that helps users discover recipes based on ingredients they already have in their kitchen. The application features a clean, intuitive interface where users can manage their ingredient inventory and get personalized recipe suggestions with detailed cooking instructions.
Chef Bot in action: Generating personalized recipes based on available ingredients
Ingredient management interface: Add, edit, and track your available ingredients
Recipe view: Detailed cooking instructions with ingredients and steps
- Ingredient Management: Add, edit, and delete ingredients in your virtual pantry
- AI-Powered Recipe Suggestions: Get personalized recipe ideas based on your available ingredients
- User Authentication: Secure login with Google OAuth
- Recipe Saving: Save your favorite recipes for future reference
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Real-time Updates: Instant feedback when managing ingredients or requesting recipes
- Python 3.10 or higher
- Node.js and npm (for local development)
- Supabase account
- Google OAuth credentials
- Clone the repository
git clone https://github.com/yourusername/chef-bot.git
cd chef-bot- Install dependencies
pip install -r requirements.txt- Set up environment variables
Create a .env file in the project root with the following variables:
SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_anon_key
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret
GOOGLE_CLIENT_ID=your_google_oauth_client_id
CHEFBOT_API_KEY=your_deepseek_api_key- Run the application locally
python -m uvicorn backend.api.index:app --reloadThe application will be available at http://localhost:8000
- Log in with your Google account
- Click on the "Add Ingredient" button
- Enter the ingredient name and quantity
- Click "Save"
- Ensure you have added ingredients to your pantry
- Click on the "What can I cook?" button
- Review the suggested recipes
- Click on a recipe to view detailed instructions
- View a recipe suggestion
- Click the "Save Recipe" button
- Access saved recipes from your profile page
- Backend: FastAPI (Python)
- Database: Supabase (PostgreSQL)
- Frontend: HTML, CSS (Tailwind), JavaScript
- Authentication: Google OAuth
- Deployment: Vercel
chef_bot/
├── backend/
│ ├── api/
│ │ └── index.py # Main FastAPI application
│ └── db/
│ └── supabase_tables.sql # Database schema
├── frontend/
│ └── simple.html # Frontend interface
├── .env # Environment variables
├── requirements.txt # Python dependencies
├── vercel.json # Vercel deployment configuration
└── README.md # Project documentation
The application uses Supabase (PostgreSQL) with the following tables:
- users: Stores user information (UUID primary key)
- ingredients: Tracks user ingredients (UUID foreign key to users)
- saved_recipes: Stores user's favorite recipes (UUID foreign key to users)
-
Fork or clone this repository
-
Create a Vercel account at vercel.com
-
Install Vercel CLI
npm install -g vercel- Login to Vercel
vercel login- Deploy from your local project
cd chef_bot
vercel- Configure environment variables
Add the following environment variables in the Vercel dashboard:
SUPABASE_URLSUPABASE_KEYSUPABASE_SERVICE_KEYSECRET_KEYGOOGLE_CLIENT_ID
- Update Google OAuth settings
Add your Vercel deployment URL to the authorized JavaScript origins in your Google Cloud Console.
- Create a Supabase account at supabase.com
- Create a new project
- Use the SQL schema in
backend/db/supabase_tables.sqlto set up your tables - Copy your project URL and API keys to your environment variables
# Run the backend server with hot reloading
python -m uvicorn backend.api.index:app --reload
# Open the frontend directly in your browser
# or serve it with a simple HTTP server
python -m http.server --directory frontend# Run tests
python -m pytestThis project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- FastAPI - The web framework used
- Supabase - Database and authentication
- Tailwind CSS - CSS framework
- Vercel - Deployment platform
Built with ❤️ by Yudiestira Sentosa