Lazy Medicine Cabinet
Photograph your medicine boxes; a local Gemma model lists names and expiry dates, and nothing leaves your laptop.
Project intro
Lazy Medicine Cabinet is a small web app that reads your medicine boxes so you don't have to: photograph the boxes, and Gemma 3 (4B, vision) running locally through Ollama lists each product name exactly as printed, its expiry date exactly as printed, and a status — Expired, Expires within 30 days, Expires within 90 days, or OK — with the time left in plain words. A Cabinet tab holds the list with a thumbnail of the source photo per line, a Pharmacy bag tab collects the expired items as a printable take-back list, and every line can be corrected by hand.
The privacy design is the whole point: the app runs entirely on the author's laptop, photos are shrunk to 1024 px in the browser before the local model sees them, the list and photos are stored only on that laptop, and a photo is deleted when its line is removed. The model is only allowed to transcribe — the prompt forbids describing uses or adding doses or advice — and all safety-relevant logic (date parsing, status, reminders, disclaimers) lives in plain, tested code: 26 tests cover date parsing, status boundaries, model-output parsing and an end-to-end assertion that no request leaves localhost.
Vibe-coded evidence, in the author's own words on DEV (24 October 2026): "I built this with Claude Code as a coding agent. It checked my laptop, proposed the model, wrote the code and tests, and ran the before/after prompt comparison. I made the product decisions and reviewed and approved every medicine-related text myself." GitHub stars: 0 at the 29 October 2026 check (github.com/iancuileana83-lab/lazy-medicine-cabinet; MIT; created and last pushed 24 October 2026).
Honest limits: Lazy Medicine Cabinet is not a hosted app and has no online demo — it is a plain-Node single page served on localhost only, so the repository page is the demo link and there is nothing to try in the browser here. It can misread labels (the author's own test: product names 7 of 7 after prompt tuning, dates 6 of 7 on both runs, with different boxes failing each time), it never gives medical advice, doses or interactions, and it is deliberately slow on weak hardware — about a minute per photo on the author's dual-core laptop with no graphics card. The screenshots show generated pictures of fictional boxes (invented brand names, no real logos), as the author states.
Actions
Tech stack
Project info
- Project category
- Health & Fitness
- Project status
- Online
- Collaboration intent
- None