2.5 KiB
2.5 KiB
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
- Add backend import endpoint:
POST /api/import/url - Implement Schema.org Recipe JSON-LD parser service
- Normalize parsed recipe into internal Recipe draft format
- Add import endpoint tests (valid recipe page, non-recipe page, malformed JSON-LD)
Phase 2: Import UI
- 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.