Overview
Where’s My App? tracks physical storage in your home: racks, containers (totes), and the items inside. Scan QR labels, see an interactive rack grid, check items in/out with photos, and maintain a full movement history.
Role & Tech Stack
Solo developer
- App: Next.js (App Router) + TypeScript, Tailwind, shadcn/ui
- Data: PostgreSQL + Prisma ORM
- Auth: Auth.js (NextAuth v5)
- Validation/Forms: Zod + React Hook Form
- QR: ZXing (scan) + qrcode (generate)
- Storage: S3‑compatible (MinIO/R2) for item photos
- PWA: installable, offline‑ready via next‑pwa
- Tests/CI: Vitest + Playwright, GitHub Actions
Problem
Household storage grows complex across garages, basements, closets, and sheds. You forget which tote holds an item, where the tote sits on the rack, and when items moved. Spreadsheets or notes fall out of date.
Solution
- Visual rack maps: SVG grid showing container positions (row/column)
- QR code system: print labels; scan to deep‑link to container/item pages
- Item management: photos to S3, tags, quantities, check‑in/out workflows
- Movement history: complete audit trail for containers and items
- PWA: mobile‑friendly, add to home screen, camera access for scanning
// Example: Prisma models excerpt
model Container {
id String @id @default(cuid())
code String @unique
name String
location Location @relation(fields: [locationId], references: [id])
locationId String
items Item[]
}
Results
- Easy retrieval: scan a tote to instantly see contents and last moves
- Accurate inventory: photos + tags reduce guesswork
- Confidence: rack maps and history make storage auditable
What I Learned
- Designing data models for spatial storage (locations → racks → slots → containers → items)
- Building QR features end‑to‑end (generation, scanning, deep‑links)
- Balancing PWA offline needs with secure auth and S3 uploads