Meal Planner
Personal meal planning app that turns “what should I cook?” into a clear weekly routine with pantry awareness and shopping support.
Overview
Meal Planner helps people stay organized with food by connecting recipes, pantry items, a calendar, and shopping lists in one flow. It is impressive because it mirrors real life: you can plan meals by day, track what ingredients you already have, and generate a list for what is missing. The result is less food waste, fewer last-minute decisions, and smoother weekly planning.
Demo
No live demo available for this project. See the repo for setup and run instructions.
Description
planner.py creates users (username, email, password_hash), meals (name, ingredients text, instructions, prep_time, cook_time, servings, category, user_id, community flag), ingredients (pantry rows with quantity, unit, category, expiry_date), meal_plan (date, meal_id, meal_type, user_id), favorites, and shopping_list (name, quantity, unit, category, is_purchased). The @login_required decorator guards dashboard, meals, ingredients, calendar, friends, and shopping routes.Meals and pantry The
/meals flow lists and adds meals; POST /add_meal persists new recipes; DELETE /delete_meal removes them. Community meals can be copied into “my meals” via /add_to_my_meals. /ingredients handles pantry CRUD with categories (produce, dairy, meat, etc.) and optional expiry for waste tracking.Calendar and automation
/calendar renders the monthly grid; /get_day_meals/<date> and /save_meal_plan load and persist plans. POST /auto_generate_plan randomly assigns saved meals across the month for a starting point. /get_meal_details and related JSON endpoints back modal/detail UI without full page reloads.Shopping and social
/shopping_list shows list rows; POST /generate_shopping_list aggregates ingredients from the current plan; toggle_purchased, mark_as_purchased, and delete endpoints manage checkout state. /friends supports browsing or sharing meal ideas (community-oriented data tied to is_community meals). The UI uses Bootstrap 5 and Font Awesome across templates such as dashboard.html, meals.html, ingredients.html, calendar.html, shopping_list.html, and friends.html.Implementation
python planner.py runs Flask on port 5000 by default (configurable). init_db() runs at import so the schema exists before first request.Migrations and maintenance: The repo includes
database_migrations.py, database_maintenance.py, migrate_db.py, and fix_db.py for evolving the SQLite file beyond the inline CREATE TABLE bootstrap — useful when adding columns or repairing installs.Deployment: A
Procfile is present for Heroku-style hosts; requirements list Flask stack dependencies.Tech & tools
- Python
- Flask
- SQLite
- Jinja2
- Bootstrap 5
- Font Awesome
- Werkzeug
Highlights
- Session-based multi-user app: users, hashed passwords, per-user meals and pantry
- meal_plan rows keyed by date and meal_type (breakfast/lunch/dinner); auto_generate_plan
- Shopping list generation from planned meals + purchased toggles
- Friends/community meals, favorites, REST-style JSON helpers for calendar UX
More projects
tinyTemp
Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.
WorldWide Rover
Award-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.
BareTag Tool Tracker
Smart tool tracking that helps teams instantly find equipment, prevent loss, and stay coordinated in real time.
Buffet
Automated trading system that tests strategies, learns from market behavior, and executes decisions with built-in risk controls.
HeadHunter
AI-powered job search assistant that helps people find better-fit roles faster, with smarter resume matching and cleaner tracking.
BrickVision
Turns ideas or 3D models into buildable LEGO-style instructions, making custom creations faster and more accessible.
Pong on Assembly
Classic Pong rebuilt from the ground up in hardware and low-level assembly, showing full-stack systems engineering in action.
Custom Single-Cycle 32-Bit Processor
From-scratch 32-bit processor design that brings core computer architecture concepts to life in working hardware.
ThreadLib Disk Scheduler
C++ user-level threading library paired with a concurrent disk scheduler that coordinates requester threads and SSTF service.
Multilateration 3D Positioning
3D location engine that estimates where an object is in space and validates accuracy through realistic simulation.
RISC-V Encryption
Encryption concepts implemented at the hardware-software boundary, showing security logic at instruction level detail.
PUF Tester
Hardware security testing toolkit for measuring unique device fingerprints and reliability under real test conditions.
tinyTemp
Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.
WorldWide Rover
Award-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.