A clean, modern, mobile‑friendly web app to snap a photo, add a title & expiry date, and track items sorted by soonest expiry.
git clone <this>
cd fridgy
docker compose up --build- Frontend: http://<your‑host>:5173
- Backend: http://<your‑host>:4000
Note (mobile camera permissions): Most mobile browsers require HTTPS for camera access unless using
localhost. For iOS Safari on a LAN IP, set up HTTPS (self‑signed or via reverse proxy) or access via a.localhostname with valid cert.
- Put a TLS reverse proxy (e.g., Caddy or Nginx) in front of the frontend (
5173) and backend (4000). - Issue a local certificate via your own CA or use something like
mkcertand install the root cert on the phone.
- Camera‑first landing screen
- Add title and expiry date
- Items sorted by soonest expiry
- Simple delete
- Persists images & data on disk (
backend/data)
- Frontend: React + Vite + Tailwind CSS (served by Nginx)
- Backend: Express + Multer for uploads, JSON file as storage
- Docker Compose with persistent volume for images & metadata
VITE_API_BASEcan point the frontend to the backend (defaulthttp://backend:4000under compose)
- PWA install + offline queue
- Edit items; quick‑pick date presets (+3d, +7d, +30d)
- Color‑blind friendly badges
- Search/filter by title
- Warnings: highlight expired items at the top