2.5 KiB
2.5 KiB
TODO — Recipe Manager
Last Updated: 2026-03-23
Current Milestone: MVP (v0.1)
🎯 Active Tasks
Backend Setup
- Initialize Node.js backend: Create src/backend/, package.json with express, better-sqlite3, zod, vitest. Create src/backend/index.ts with "Hello World" server on port 3000. Verify: npm install && npm run dev (server starts). Commit as "feat(backend): initialize Node.js project with Express"
- Set up TypeScript: Create tsconfig.json (strict mode, ES2022, Node16 module resolution). Add build script to package.json. Verify: npm run build succeeds. Commit.
- Create SQLite schema: Create src/backend/db/schema.sql with recipes, tags, recipe_tags tables per ARCHITECTURE.md. Create src/backend/db/migrate.ts to apply schema. Verify: npm run migrate creates data/recipes.db. Commit.
- Implement recipe CRUD API endpoints
- Add Zod validation schemas
- Write API integration tests
Frontend Setup
- Initialize React + Vite project
- Configure Tailwind CSS
- Set up React Router
- Create recipe list page
- Create recipe detail/edit page
- Implement cook mode UI
Features
- Tag management (create, assign, filter)
- Text search (title + ingredients)
- Screen wake lock for cook mode
- Basic error handling + loading states
DevOps
- Create Dockerfile for backend
- Create Dockerfile for frontend (nginx)
- Write docker-compose.yml
- Test local deployment
Documentation
- Write API documentation (docs/api.md)
- Create user guide (docs/user-guide.md)
- Add setup instructions to README
- Document first architecture decisions (ADRs)
✅ Completed Tasks
(none yet)
📋 Backlog (Post-MVP)
v1.0
- Browser extension for recipe scraping
- Recipe scaling (adjust servings)
- Print styles
- Advanced search filters
- Random recipe suggestion
v2.0
- AI ingredient substitutions
- Meal planning
- Shopping list generation
- Fintrove cost tracking integration
🚧 Blocked / Needs Decision
- Recipe images: Store in filesystem or SQLite? (Waiting for agent decision)
- Scraping strategy: Puppeteer vs Cheerio? (v1.0 decision)
Notes for Agents
- Check this file before starting work
- Move completed tasks to "Completed" section
- Add new tasks as you discover them
- Flag blockers for Paul's attention
- Keep this file current (update after each commit)
This is your working task list. Keep it honest and up-to-date.