Files
Meal-Planner/README.md
T
admin 3885d7d0dc
CI / backend (pytest + alembic) (push) Has been cancelled
CI / frontend (build) (push) Has been cancelled
feat: feedback-driven recipe discovery (auto-ingest via Spoonacular)
2026-05-24 13:17:39 -07:00

77 lines
2.4 KiB
Markdown

# Meal Planner
Self-hosted meal planning system that integrates with Lucky California grocery store, sends weekly meal proposals via email to family members, generates shopping lists, and learns from feedback.
## Background
This project was born out of frustration with meal kit services (Blue Apron → EveryPlate → HungryRoot → Sunbasket) that:
- Escalate costs to 3x ingredient markup
- Fall into repetitive meal rhythms
- Force users to log into apps to manage selections
- Don't integrate with home pantry items
## Features
- **Grocery Integration**: Scrapes Lucky California weekly ads and sales
- **Family Approval Workflow**: Email proposals with approve/deny; one denial swaps the meal
- **Shopping List Generation**: Weekly list grouped by store aisles, highlighting sales, with interactive checkboxes to track purchased items
- **Pantry Integration**: Specify home items to incorporate into suggestions
- **Web UI**: Modern interface for the whole family
- **Learning**: Feedback-based meal recommendations, with weekly auto-discovery of new recipes from external APIs when family preferences are signaled
- **Recipe Images**: Scraped from public recipe sites, AI fallback available
## Architecture
- **Backend**: Python/FastAPI
- **Database**: PostgreSQL
- **Frontend**: React + Tailwind CSS
- **Email**: SendGrid
- **Hosting**: Docker Compose with nginx reverse proxy
## Documentation
- [Project Specification](docs/SPEC.md)
- [Architecture](docs/ARCHITECTURE.md)
- [Database Schema](docs/database-schema.md)
- [Implementation Plan](docs/implementation-plan.md)
- [Running Guide](docs/RUNNING.md)
## Quick Start
```bash
# Clone and start
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose down
```
## Family Profile
Household: 2 adults, 2 children
- One adult likes mushrooms, one child OK with them
- Three family members do NOT like mushrooms
- No allergies
- Calorie, budget, and health conscious eating
## Approval Workflow
1. System generates 7-day meal plan based on sales, dietary constraints, budget, variety
2. Email sent to both adults with meal previews
3. One denial = meal swapped; no denials = auto-approved
4. Shopping list generated after approval
## Tech Stack
| Component | Technology |
|-----------|------------|
| Backend | Python 3.11, FastAPI |
| Database | PostgreSQL 15 |
| Frontend | React 18, TypeScript, Tailwind |
| Scraping | Playwright, BeautifulSoup |
| Email | SendGrid |
| Hosting | Docker Compose, nginx |