Saltar al contenido
Volver a proyectos
En desarrollo

appxdata — App de campo multiplataforma (OFITECO)

Reescritura sobre stack moderno de la app de auscultación de OFITECO: campo, calibraciones, incidencias, alarmas y SCADA, offline-first, para Android e iOS.

El problema

Los equipos de auscultación toman lecturas en campo —presas, túneles, puentes— a menudo en ubicaciones sin cobertura fiable. La app legacy (Angular + Ionic) arrastraba deuda técnica y defectos de seguridad. El objetivo: una reescritura multiplataforma, offline-first, fiel en funcionalidad pero sólida en seguridad y mantenible.

Qué construí

Una app Capacitor (Android e iOS) que digitaliza el trabajo de campo de principio a fin, funcionando sin conexión y sincronizando cuando vuelve la red:

  • Lecturas manuales: rutas planificadas, numpad con sanitización en vivo, foto, lectura de QR, histórico por sensor (gráficas).
  • Calibraciones e inspecciones: formularios de campos dinámicos por tipo de equipo, completitud de tarea, incidencias con validación.
  • Alarmas (valor vs umbral) y SCADA (presas → esquemas → sinóptico interactivo con valores en tiempo real).
  • Sincronización offline: cola FIFO, resolución de conflictos (HTTP 409, last-write-wins), indicador de red, token persistente.
  • Multivariante por tipo de infraestructura (presas / túneles / puentes), con app id, nombre e icono propios por variante.
  • 4 idiomas (es / ca / en / fr) con autodetección por navegador.

Seguridad (vs legacy)

HTTPS por defecto (HTTP solo con consentimiento explícito) · token JWT cifrado en reposo (nunca en localStorage) · base de datos local cifrada (SQLCipher, passphrase en el Keystore del dispositivo) · CSP estricta en build · allowBackup=false · 0 vulnerabilidades en npm audit.

Métricas técnicas (verificables)

  • ~768 tests (Vitest), cobertura 100/100/100/94, lint + type-check + a11y limpios.
  • Clean Architecture 4 capas (domain / application / infrastructure / presentation), enforced por eslint-plugin-boundaries con canary anti-regresión.
  • Verificado en dispositivo real (flujos end-to-end, 0 errores en logcat). WCAG 2.1 AA (axe + Playwright).

Stack

Svelte 5 (runes) · TypeScript estricto · Vite 7 · Tailwind 4 · flowbite-svelte · Capacitor 8 (Android/iOS) · SQLite cifrada (SQLCipher) · ApexCharts.

Proyecto profesional en OFITECO (Grupo VINCI) · repositorio privado. En curso: terminando la versión Android; siguiente paso, compilación para iOS (Capacitor comparte la base de código).