recipe-manager/TODO.md

84 lines
2.5 KiB
Markdown

# TODO — Recipe Manager
**Last Updated:** 2026-03-25
**Current Milestone:** v1.0 — Recipe Import
---
## ✅ MVP (v0.1) Status
MVP is functionally complete (core app + docs + tests).
### Completed
- Backend API (recipes + tags)
- Frontend UI (list/detail/form/cook mode)
- Search + tag management + error handling
- Dockerfiles + docker-compose
- API docs + user guide + README setup
- ADR-001 (sql.js decision)
### Deferred / Manual Host Validation
- [ ] Manual Docker host test (`docker compose up`) on host machine with Docker installed
---
## 🎯 Active Tasks — v1.0 Recipe Import
### Phase 1: URL Import Foundation
- [x] Add backend import endpoint: `POST /api/import/url`
- [x] Implement Schema.org Recipe JSON-LD parser service
- [x] Normalize parsed recipe into internal Recipe draft format
- [x] Add import endpoint tests (valid recipe page, non-recipe page, malformed JSON-LD)
### Phase 2: Import UI
- [x] Add “Import from URL” UI page/form in frontend
- [ ] Show parsed preview (title, ingredients, steps, source URL)
- [ ] Allow edit-before-save flow, then save to existing create recipe API
- [ ] Add frontend error states (invalid URL, parse failure, timeout)
### Phase 3: Fallback Parsing + Hardening
- [ ] Add heuristic fallback parser when Schema.org missing
- [ ] Add timeout/retry + user-friendly import failure messages
- [ ] Add logging/telemetry for import success/failure reasons
### Phase 4: Browser Extension (after URL import stable)
- [ ] Scaffold browser extension project (Manifest v3)
- [ ] Add “Send to Recipe Manager” action to call import API
- [ ] Add extension settings for Recipe Manager base URL
---
## 📋 Backlog (Post-v1)
### v1.1
- [ ] Recipe scaling (adjust servings)
- [ ] Print styles
- [ ] Advanced search filters
- [ ] Random recipe suggestion
### v2.0 (AI Features)
- [ ] AI ingredient substitutions
- [ ] Meal planning
- [ ] Shopping list generation
- [ ] Fintrove cost tracking integration
---
## 🚧 Blocked / Needs Decision
- **CopyMeThat export path:** confirm whether Anne/Elizabeth can export directly, or we rely on URL import + browser extension.
- **Tag filtering in recipe list:** currently UI-only, backend filter by tag_id pending.
---
## Notes for Agents
- Work from top to bottom in the **Active Tasks — v1.0** section.
- Pick the **first unchecked task** only.
- One task = one commit.
- If blocked: mark task with reason and continue next unblocked task only with explicit note.
---
_This is the authoritative task queue for harness iterations._