Skip to content
Back to projects

Case study · Progressive web application

PWA UTT — Inspecciones de laboratorios

An academic inspection PWA that preserves local captures and manages pending changes before confirming them on the server.

Academic project · the demo opens at sign-in

Sync model
Device
Local inspection
Durable queue
Offline
Network restored
Supabase
LOCAL → SERVERExplanatory diagram

Technologies

  • Next.js
  • TypeScript
  • Supabase
  • IndexedDB

PWA_UTT

Problem and scope

The project addresses recording lab inspections where connectivity can be intermittent. Its scope includes capturing and viewing information locally, then coordinating a later submission.

The application is an academic project and its sample data is synthetic; it does not represent a validated institutional deployment.

Architecture and flow

IndexedDB separates local records, the sync queue, and conflicts. Each operation is associated with an account and keeps a stable identifier so a retry can recognize a request already received.

When connectivity returns, the queue processes dependencies and sends changes to server routes. Supabase Auth, Postgres, and RLS participate in sessions, data, and role-based authorization. Routes distinguish technician and coordinator permissions.

Technical decisions

The policy stores a local copy and a sync intent in one IndexedDB transaction. Operations use a frozen request and idempotency so a lost response does not duplicate writes.

  • Transient failures retry with increasing delay and a documented limit; local data remains if attempts are exhausted.
  • A version mismatch opens an explicit conflict. The user can keep their capture or adopt an authorized remote version; changes are not silently overwritten.

Documented validation

The repository documents automated tests using in-memory IndexedDB and simulated transport for persistence, lost acknowledgements, retries, account isolation, and conflict resolution.

The demo URL responds and redirects to `/login`. That confirms the route is available, not that authenticated flows work; the latest project documentation also does not claim validation against remote Supabase.

Known limits

Simulated tests do not reproduce physical network conditions, real cross-browser concurrency, or remote policies. Those checks and an authorized demo session remain pending.