Entertainment Archive
Six-week build of a mobile-first PWA for household collections, with barcode scanning (outcomes not measured yet)
For individuals and families whose collections are spread across apps and spreadsheets or never cataloged at all.
At a glance
- Role
- Creator and technical lead (solo)
- Timeframe
- 6 weekly phases; technical docs v1.0, Oct 2025
- Team
- Solo (AI-assisted with Claude Code)
- Users
- Individual collectors and households; no user numbers published
- Status
- Live at entarchive.com as a private, self-hosted household archive
- Stack
- PHP 8.1+, MySQL/MariaDB, Bootstrap 5.3, Scanbot SDK, PWA, Nginx
Problem and stakes
Collections are fragmented across apps and spreadsheets, or not tracked at all. Families have no easy way to share and coordinate collections, entering items by hand is slow, value history is lost, and most collection apps are desktop-first with no offline access.
Decision
One mobile-first platform for every category, with barcode-first data entry, family sharing with roles, value tracking, and a PWA for offline use and installation.
Program plan
Week 1: schema (17 tables) and auth. Week 2: family groups and search. Week 3: barcode integration. Week 4: notifications and invitations. Week 5: PWA and mobile. Week 6: analytics and import/export.
Technical system
PHP MVC on MySQL/MariaDB with 17 tables (users, items, collections, families, family_members, scan_log, barcode_cache, price_history, wishlists, tags, activity_log, and more).
Barcode flow: Scanbot SDK camera scanning (plus manual entry and image upload) for EAN-13, UPC-A, CODE-128, QR, and ISBN. Product lookup through UPC Database, Open Food Facts, and Google Books, with a 30-day barcode cache to save API calls.
Families use Admin, Member, and Viewer roles. Security includes bcrypt passwords, CSRF tokens, and prepared statements. The PWA's service worker caches static assets and provides an offline page. Export to CSV, JSON, and PDF.
Execution
Delivered across six weekly phases following the plan above, using Claude Code for AI-assisted development. The live site has since been repositioned as "Your private shelf for every film, book, and record you own," built for one household, with catalog checklists and household lending tracking.
Outcome
Outcomes not measured yet.
Reflection
Technical debt the project documented: no PHPUnit or end-to-end tests yet, no query or session caching (Redis), and not containerized. Ideas noted for later: image recognition, eBay price lookup, and native apps.