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.