Skip to content
Back to projects
In progress

appxdata — Cross-platform field app (OFITECO)

Modern-stack rewrite of OFITECO's infrastructure auscultation app: field readings, calibrations, issues, alarms and SCADA, offline-first, for Android and iOS.

The problem

Auscultation teams take readings in the field — dams, tunnels, bridges — often in locations with no reliable coverage. The legacy app (Angular + Ionic) carried technical debt and security defects. The goal: a cross-platform, offline-first rewrite, faithful in functionality but solid in security and maintainable.

What I built

A Capacitor (Android and iOS) app that digitises field work end to end, working offline and syncing when the network returns:

  • Manual readings: planned routes, numpad with live sanitisation, photo, QR scanning, per-sensor history (charts).
  • Calibrations and inspections: dynamic-field forms by equipment type, task completeness, issues with validation.
  • Alarms (value vs threshold) and SCADA (dams → schematics → interactive synoptic with real-time values).
  • Offline sync: FIFO queue, conflict resolution (HTTP 409, last-write-wins), network indicator, persistent token.
  • Multi-variant by infrastructure type (dams / tunnels / bridges), each with its own app id, name and icon.
  • 4 languages (es / ca / en / fr) with browser auto-detection.

Security (vs legacy)

HTTPS by default (HTTP only with explicit consent) · JWT token encrypted at rest (never in localStorage) · encrypted local database (SQLCipher, passphrase in the device Keystore) · strict build CSP · allowBackup=false · 0 vulnerabilities in npm audit.

Technical metrics (verifiable)

  • ~768 tests (Vitest), coverage 100/100/100/94, clean lint + type-check + a11y.
  • Clean Architecture (4 layers: domain / application / infrastructure / presentation), enforced by eslint-plugin-boundaries with an anti-regression canary.
  • Verified on real devices (end-to-end flows, 0 logcat errors). WCAG 2.1 AA (axe + Playwright).

Stack

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

Professional project at OFITECO (VINCI Group) · private repository. In progress: finishing the Android version; next step, iOS build (Capacitor shares the codebase).