| TASK-001 |
backend/src/db.ts |
SQLite connection + entries table auto-migration |
A |
§3 |
| TASK-002 |
backend/src/server.ts |
Express bootstrap, CORS, JSON middleware, port 3001 |
A |
§4 |
| TASK-003 |
backend/src/routes/entries.ts |
GET /entries — all entries, timestamp DESC |
A |
§2 |
| TASK-004 |
backend/src/routes/entries.ts |
GET /entries/search — full-text across title/content/tags |
A |
§2 |
| TASK-005 |
backend/src/routes/entries.ts |
GET /entries/week — 7-day date-range filter |
A |
§2 |
| TASK-006 |
frontend/src/App.tsx |
Root — fetch entries, pass to EntryFeed + SearchBar |
B |
§1 |
| TASK-007 |
frontend/src/components/EntryFeed.tsx |
List of EntryCards; props entries[], isLoading |
B |
§1 |
| TASK-008 |
frontend/src/components/EntryCard.tsx |
One entry — title, timestamp, preview, TagBadge list |
B |
§1 |
| TASK-009 |
frontend/src/components/TagBadge.tsx |
Clickable tag chip; props tag, onClick |
B |
§1 |
| TASK-010 |
frontend/src/components/SearchBar.tsx |
Controlled input, 300ms debounce, calls onSearch |
B |
§1 |
| TASK-011 |
frontend/src/components/WeeklySummary.tsx |
Group entries by day for the week |
B |
§1 |
| TASK-012 |
frontend/ (Vite config) |
Vite + React scaffold; proxy /api → :3001; Tailwind |
B |
§4 |