QR Manager
Status: active
Started: 2026-07-12
Path: /opt/data/qr-manager/
Port: 5052
Proxy: Ming's Note → /qr/
Core Question
How to manage and organise QR codes (restaurant menus, payment links, wifi passwords) in one place instead of scattered photos?
What It Is
A self-hosted QR code manager — upload a photo of a QR code, auto-decode it, AI describes what it is, categorise and search later.
Key Features
- Upload QR code images (photo or screenshot)
- Auto-decode QR content (URL, text, WiFi config) via jsQR + @zxing/library
- AI vision description (OpenAI) — identifies what the QR is for
- Categories: restaurant, payment, wifi, transport, shopping, other
- Search and filter by category/keyword
- Mobile-friendly gallery UI
Why It Matters
- Daily utility — Restaurant menus, payment QRs, wifi passwords pile up in camera roll
- Organised access — Search instead of scrolling through photos
- AI-assisted — Vision model describes QR content even before decoding
Tech Stack
- Backend: Express + SQLite (better-sqlite3)
- QR decoding: jsQR + @zxing/library (dual decoder for reliability)
- Vision: OpenAI API (GPT-4o for image description)
- Frontend: HTML/CSS/JS
- Upload: multer (10MB limit)
- Dependencies: express, better-sqlite3, multer, jsqr, @zxing/library, jimp, openai
Data
- DB: data/qr-manager.db (SQLite)
- Uploads: uploads/ (QR code images)
- 3 entries as of 2026-07-14 (all restaurant category)
Open Questions
- [ ] Batch upload (scan multiple QRs at once)?
- [ ] Export/share QR codes?
- [ ] WiFi QR auto-connect instructions?
- [ ] Integration with camera — live scan instead of upload?
Related Files
- Sandbox:
_sandbox/sessions/2026-07-12-qr-manager-mockup/ (UI mockups)
- Sandbox:
_sandbox/sessions/2026-07-12-qr-manager-review/ (QA report)
Notes
- Dual decoder (jsQR + zxing) for better success rate across different QR styles
- Vision description helps when QR decode fails or gives cryptic URLs
- Categories are predefined in db.js CATEGORIES object