TipsMate
tipsmate.ukOffline-First PWA for Restaurant Waiters — Full-Stack Application
Designed and deployed a Progressive Web App enabling waiters to track tips across devices with full offline support. Built with a "No-Build" architecture using native browser features instead of bundlers.
- Backend API: Python 3.13 / FastAPI with SQLModel (unified ORM and validation) and Neon serverless PostgreSQL. Alembic for schema migrations. Implemented JWT auth with HttpOnly cookies, email verification via Resend, and password reset. Built bi-directional sync engine with conflict resolution (server-wins strategy) and soft deletes for reliable multi-device support.
- PWA Frontend: Native ES Modules with Import Maps — no Webpack/Vite. Alpine.js for reactivity, Chart.js for visualizations, Dexie.js (IndexedDB) as offline database. Service Worker handles caching and background delta-sync when connectivity returns.
- Infrastructure & CI/CD: Neon serverless Postgres (production) with Docker Compose for local dev (app + db + test db). GitHub Actions pipeline enforcing Ruff, Pyright, and Biome. Parallelized integration tests (pytest-xdist) with isolated database instances per worker. Deployed to Google Cloud Run (europe-west1) with auto-scaling and Google Secret Manager.