Commit Graph

3 Commits

Author SHA1 Message Date
Paul Huliganga 8b729d7fc4 chore(backend): implement high-priority improvements from code review
- Configuration: dotenv support, env vars for PORT, DB_PATH, CORS_ORIGIN, rate limits
- Security: API key auth for write endpoints, rate limiting on import, configurable CORS, image URL normalization
- Reliability: DB transactions for create/update, dirty flag for saves, foreign key enforcement (PRAGMA), duplicate detection O(1) optimization
- Features: health check endpoint (/api/health)
- Bugfix: corrected tag assignment/removal routes (param order)
- Testing: added tests for PUT/DELETE recipes, tag CRUD and assignment, enabled foreign keys in tests
- All 46 backend tests passing

Closes #<ticket-if-any>
2026-03-29 23:11:27 -04:00
Paul Huliganga 853374f060 feat(devops): add docker-compose orchestration with nginx API proxy
- Created docker-compose.yml with backend and frontend services
- Backend: Node.js API on port 3000 with SQLite volume persistence
- Frontend: nginx on port 8080 with health checks and restart policies
- Configured nginx to proxy /api/* requests to backend service
- Updated frontend API client to use relative URLs (/api instead of http://localhost:3000/api)
- Added Vite dev server proxy for local development workflow
- Implemented health checks for both services with service dependency
- Created comprehensive documentation in docs/docker-compose.md
- Verified: docker-compose.yml syntax is valid YAML

Next step: Test local deployment (docker compose up)
2026-03-24 08:12:55 -04:00
Paul Huliganga 2c85b80004 feat(frontend): initialize React + Vite project with TypeScript
- Created frontend/ directory using Vite with React + TypeScript template
- Installed React Router 7 for client-side routing
- Set up project structure: components/, hooks/, pages/, services/, types/
- Created Recipe and Tag TypeScript interfaces matching backend schema
- Added basic App.tsx with project status display
- Verified dev server starts successfully on port 5173
- Added frontend README with development instructions
- Updated TODO.md to mark task as complete
2026-03-24 00:27:17 -04:00