110 lines
3.6 KiB
Markdown
110 lines
3.6 KiB
Markdown
# TODO — Recipe Manager
|
|
|
|
**Last Updated:** 2026-03-24
|
|
**Current Milestone:** MVP (v0.1)
|
|
|
|
---
|
|
|
|
## 🎯 Active Tasks
|
|
|
|
### Backend Setup
|
|
- [x] 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"
|
|
- [x] Set up TypeScript: Create tsconfig.json (strict mode, ES2022, Node16 module resolution). Add build script to package.json. Verify: npm run build succeeds. Commit.
|
|
- [x] 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 using sql.js (see ADR-001). Verify: npm run migrate creates data/recipes.db. Commit.
|
|
- [x] Implement recipe CRUD API endpoints
|
|
- [x] Add Zod validation schemas
|
|
- [x] Write API integration tests
|
|
|
|
### Frontend Setup
|
|
- [x] 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
|
|
|
|
### 2026-03-24
|
|
- **Frontend initialization** (latest commit)
|
|
- Created frontend/ directory with Vite + React + TypeScript
|
|
- Installed React Router 7
|
|
- Set up project structure (components/, hooks/, pages/, services/, types/)
|
|
- Created Recipe and Tag TypeScript interfaces
|
|
- Verified dev server starts successfully on port 5173
|
|
- Added frontend README with development instructions
|
|
|
|
- **Recipe CRUD API implementation** (commit e2599b8)
|
|
- Implemented GET /api/recipes (list with pagination & search)
|
|
- Implemented GET /api/recipes/:id (get single recipe)
|
|
- Implemented POST /api/recipes (create recipe)
|
|
- Implemented PUT /api/recipes/:id (update recipe)
|
|
- Implemented DELETE /api/recipes/:id (delete recipe)
|
|
- Added Zod validation schemas for all endpoints
|
|
- Created layered architecture (Routes → Services → Repositories)
|
|
- Wrote 16 integration tests (all passing)
|
|
- Database auto-save functionality
|
|
|
|
### 2026-03-23
|
|
- Backend initialization (Node.js + Express)
|
|
- TypeScript setup with strict mode
|
|
- SQLite schema creation with sql.js
|
|
|
|
---
|
|
|
|
## 📋 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._
|