← all work

06 / full stack2026working v1 · runs locally

Smart Shopping

A barcode-driven household shopping system: one authoritative backend, offline-first device clients and a full hardware simulator.

  • typescript
  • fastify
  • sqlite
  • react
  • playwright

the problem

A shared shopping list falls apart when several people and several devices update it at once, and some of those devices are offline.

architecture

Smart Shopping architecturePhone companion to Fastify API; Handheld scanner to Fastify API; Base + printer to Fastify API; Fastify API to Domain modules; Fastify API to Product lookup; Domain modules to SQLitedevicesapidomainstoragePhone companionoffline queueHandheld scanneroffline queueBase + printeroffline queueFastify APIREST · WebSocket eventsDomain moduleslists · purchases · reviewProduct lookupOpen Food FactsSQLitetransactional events

what i built

  • A modular-monolith API in Fastify and SQLite that is the single source of truth, with transactional events and per-user attribution.
  • Independent clients for a phone, a handheld scanner, a base station and a printer, each with a durable offline queue.
  • A browser Device Lab that simulates the hardware, so the whole system runs and is tested without any physical device.
  • Unit, integration and end-to-end suites in Vitest and Playwright.