A simple web-based meal planner that helps you organize weekly meals and generate shopping lists.
- 📅 Weekly meal planning with dropdown selection
- 🛒 Automatic shopping list generation from selected meals
- 🎲 Random meal suggestions
- 🔐 Recipe database with cuisine types and dietary tags
- 🍽️ Separate lunch planning
Frontend:
- HTML/CSS/JavaScript (vanilla)
- Responsive design
Backend:
- Flask (Python web framework)
- SQLAlchemy (ORM)
- MySQL database
- Flask-CORS for API access
-
Install dependencies:
pip install -r requirements.txt
-
Configure database:
- Copy
config.py.exampletoconfig.py - Update with your MySQL database credentials
- Copy
-
Run the Flask server:
python flask_app.py
-
Open the app:
- Open
manner.htmlin your browser - Or serve via a local web server
- Open
Recipes Table:
- MealName (string)
- cuisine (string)
- mealType (string)
- dietary (JSON)
- characteristics (JSON)
Ingredients Table:
- name (string)
- recipe_id (foreign key to Recipes)
Public (no auth required):
GET /recipes- List all recipesGET /recipes/<MealName>- Get specific recipe with ingredientsGET /recipes_with_ingredients- Get all recipes with their ingredients
Authenticated (requires Bearer token):
POST /add_recipe- Add new recipe with ingredients- Requires
Authorization: Bearer <MANNER_API_TOKEN>header - Validates MealName and ingredients fields
- Requires
-
Database: Create
config.pyfrom the template:SQLALCHEMY_DATABASE_URI = 'mysql://username:password@host/database'
-
API Token: Set environment variable for recipe creation:
export MANNER_API_TOKEN="your-secret-token-here"
This token is required for POST /add_recipe endpoint only. GET endpoints remain public.
This is a simple meal planning tool for personal use. The frontend makes API calls to the Flask backend to fetch recipes and generate shopping lists.