MenuGenie is a Django-based web application for restaurant owners to digitize and manage their menus. It leverages Google Gemini AI to extract structured menu data from images, making menu creation fast and easy.
- User registration and authentication (with email verification)
- Restaurant owner and customer roles
- Create and manage restaurants and menus
- Upload menu images and extract menu sections/items/prices using Google Gemini AI
- Organize menu items by sections
- Add, edit, and delete menu items and sections
- Public and private menu views
- Python 3.x
- Django 5.2.3
- SQLite (default, can be changed)
- Google Gemini AI (for menu extraction)
- Pillow (image processing)
- Clone the repository:
git clone <repo-url> cd menuserver
- Install dependencies:
pip install -r requirements.txt
- Apply migrations:
python manage.py migrate
- Create a superuser (optional, for admin access):
python manage.py createsuperuser
- Run the development server:
python manage.py runserver
- Google Gemini API Key:
- Set your Google Gemini API key in
menuserver/settings.pyasGOOGLE_API_KEY.
- Set your Google Gemini API key in
- Email Settings:
- Configure SMTP settings in
menuserver/settings.pyfor email verification.
- Configure SMTP settings in
- Media and Static Files:
- Uploaded images are stored in the
media/directory.
- Uploaded images are stored in the
- Register as a user (choose restaurant owner if you want to manage menus).
- Create a restaurant and upload a menu image to extract menu data automatically.
- Manage menu sections and items via the web interface.
- Customers can view public menus.
You can test the Gemini AI extraction using test.py:
python test.pyEdit test.py to set your image path and API key.
See requirements.txt for all dependencies:
- Django >= 5.2.3
- Pillow
- google-generativeai
MIT License
For questions or support, contact: 98sh32@gmail.com



