Phases 6-7

This commit is contained in:
Aerilyn Weber 2026-05-14 14:47:23 +09:00
parent 76a516a417
commit 029940b079
111 changed files with 17247 additions and 447 deletions

View file

@ -315,7 +315,14 @@ interface StoreComparisonResult {
- Match items to products (fuzzy), match store to stores
- With `NoOpLlmProvider`: returns `{ available: false }`
### 9.10 — Web UI: Grocery Management
### 9.10 — Web: API Client Services
- `packages/web/src/services/shopping-lists.ts` — fetch functions for shopping list endpoints
- `packages/web/src/services/prices.ts` — fetch functions for price record endpoints
- Unit tests in `packages/web/src/services/__tests__/shopping-lists.test.ts`
- Unit tests in `packages/web/src/services/__tests__/prices.test.ts`
### 9.11 — Web UI: Grocery Management
- `/shopping-lists` page:
- Active lists at top, completed/archived below
@ -326,16 +333,23 @@ interface StoreComparisonResult {
- Each item: checkbox, name, quantity, estimated price
- Check off: expand to enter actual price (optional)
- Real-time sync indicator ("2 members shopping")
- "Done Shopping" button prompts "Add items to pantry?"
- "Done Shopping" button prompts "Add items to pantry?"
- `/stores` page:
- Store list with CRUD
- Store list with CRUD (already exists from Phase 4, extend if needed)
- Per-store: total spent, last visit, product count
- `/prices` page (analytics):
- Product search price history line chart (per store, color-coded)
- Product search price history line chart (per store, color-coded)
- Store comparison table
- Spending over time bar chart
- Price alerts panel
- **Shopping list widget on dashboard**: shows active lists with quick-check functionality
- Component tests for all pages and interactive components
### 9.12 — CI Verification
- `npm run build` passes
- `npm run test:cov` passes (100% lines/functions/statements, 90% branches)
- `npm run lint` passes
---
@ -349,6 +363,8 @@ interface StoreComparisonResult {
- [ ] Price analytics show spending trends and alerts
- [ ] Auto-generated lists from meal plans correctly reflect shopping gap
- [ ] Receipt parsing endpoint delegates to LLM provider
- [ ] Web UI has component tests for all pages and interactive components
- [ ] `npm run build`, `npm run test:cov`, and `npm run lint` all pass
---