← Back to Projects

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

Database initialization in 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

Entry: 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.

Award winning

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.

Award winning

WorldWide Rover

Award-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.