Files
admin dcdb88595e docs: document unit conversion implementation
- Update implementation-plan.md: mark unit conversion complete
- Update HANDOFF.md: add session notes for 2026-05-24 unit conversion
- Update README.md: list Unit Conversion as a feature
2026-05-24 15:34:16 -07:00

78 lines
2.6 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
- **Unit Conversion**: Converts recipe quantities (cups, tbsp, lb) to grocery units for accurate cost estimates
## 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 |