recipe-manager/frontend/public/assets/photos
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
..
category chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00
credits chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00
detail chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00
empty-state chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00
hero chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00
list chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00
README.md chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00
manifest.json chore(backend): implement high-priority improvements from code review 2026-03-29 23:11:27 -04:00

README.md

Photo-First Assets (Wave 2.5)

This directory is the handoff surface for migrating from illustration-first to photo-first art direction.

Current status

  • manifest.json is the source of truth for photo slots and candidate sources.
  • No third-party photos are vendored yet in this repo.
  • Existing SVG placeholders remain as safe local fallbacks until approved photos are added.

Folder intent

  • hero/ — homepage/detail hero photos (.jpg/.webp)
  • list/ — 4:3 and 1:1 card/list photos
  • detail/ — 16:9 or 3:2 detail hero photos
  • category/ — optional category cover photos
  • empty-state/ — optional minimal photographic empty-state support
  • credits/ — attribution and source snapshots when required

Licensing guardrails

Preferred source order:

  1. Pexels (free commercial use, attribution typically not required)
  2. Unsplash (free use under Unsplash License, attribution appreciated)
  3. Owned/internal photos (full control)

Rules:

  • Verify license at time of download and record it in manifest.json.
  • Never ingest images marked editorial-only or with recognizable private persons without release confidence.
  • Keep sourceUrl, license, and downloadedAt metadata for every vendored photo.

Integration

UI workers should consume manifest.json and gracefully fallback to local placeholders when localPath is null.