Saltar al contenido
Volver a proyectos

Caso de estudio · Aplicación web progresiva

PWA UTT — Inspecciones de laboratorios

Una PWA académica de inspecciones que conserva capturas locales y administra cambios pendientes antes de confirmarlos en el servidor.

Proyecto académico · la demo abre en acceso

Modelo de sincronización
Dispositivo
Inspección local
Cola durable
Sin conexión
Red disponible
Supabase
LOCAL → SERVIDOREsquema explicativo

Tecnologías

  • Next.js
  • TypeScript
  • Supabase
  • IndexedDB

PWA_UTT

Problema y alcance

El proyecto aborda el registro de inspecciones en laboratorios donde la conectividad puede ser intermitente. El alcance incluye capturar y consultar información localmente y coordinar su envío posterior.

La aplicación es un proyecto académico y sus datos de muestra son sintéticos; no representa un despliegue institucional validado.

Arquitectura y recorrido

IndexedDB separa los registros locales, la cola de sincronización y los conflictos. Cada operación queda asociada a una cuenta y conserva un identificador estable para que un reintento pueda reconocer una solicitud ya recibida.

Al recuperar conexión, la cola procesa dependencias y envía cambios a las rutas del servidor. Supabase Auth, Postgres y RLS participan en la sesión, los datos y la autorización por rol. Las rutas distinguen los permisos de técnico y coordinador.

Decisiones técnicas

La política conserva una copia local y una intención de sincronización en una transacción IndexedDB. Las operaciones usan una solicitud congelada e idempotencia para que una pérdida de respuesta no duplique escrituras.

  • Los fallos transitorios se reintentan con espera creciente y un máximo documentado; los datos locales permanecen si se agotan los intentos.
  • Una discrepancia de versión abre un conflicto explícito. La persona puede conservar su captura o adoptar una versión remota autorizada; no hay sobrescritura silenciosa.

Validación documentada

El repositorio describe pruebas automatizadas con IndexedDB en memoria y transporte simulado para persistencia, pérdida de ACK, reintentos, aislamiento por cuenta y resolución de conflictos.

La URL de demo responde y redirige a `/login`. Eso confirma que la ruta está disponible, no el funcionamiento de flujos autenticados; la última documentación tampoco acredita validación contra Supabase remoto.

Límites conocidos

Los tests simulados no reproducen la red física, concurrencia real entre navegadores ni políticas remotas. Esas validaciones y una sesión de demo con acceso autorizado siguen pendientes.