CAMID – Sviluppo Laravel per un'App Offline-First sul Campo

Un progetto di sviluppo Laravel per CAMID/ZagZag: architettura offline-first, sincronizzazione affidabile e migrazione dello storage su Azure.

Discuti un progetto simile

CAMID

CAMID (ZagZag/xmove) è una Progressive Web App offline-first per lavoratori sul campo: gestisce progetti, attività, rilevazione ore, indirizzi, articoli e notifiche per team che operano sul posto, spesso in zone con connettività scarsa o assente. Come agenzia di sviluppo Laravel con sede in Alto Adige, abbiamo preso in carico una codebase pluriennale dall'agenzia precedente, AboutBits, che non disponeva più di uno sviluppatore Laravel. AboutBits ci ha consigliati proprio per la nostra esperienza specifica su Laravel.

Sfida

  • Continuità di un backend Laravel critico per il business

Senza più uno sviluppatore Laravel nel team precedente, CAMID aveva bisogno di un partner in grado di prendere rapidamente in carico una codebase pluriennale e sconosciuta, portandola avanti senza interruzioni.

  • Affidabilità offline totale + migrazione dello storage su Azure

​​​​​​​I lavoratori sul campo devono poter operare completamente offline e sincronizzare in modo affidabile al ripristino della connessione. In parallelo, lo storage di file e dati doveva essere migrato su Azure (il servizio CAMID Cloud).

Cosa abbiamo realizzato

Architettura realmente offline-first — una pipeline di sincronizzazione unidirezionale (API → sync → IndexedDB → UI reattiva) che rende l'app pienamente utilizzabile senza rete.

Modifica offline della rilevazione ore tramite un buffer write-ahead che accoda le modifiche offline e le riproduce e riconcilia in modo affidabile alla riconnessione — il problema offline più complesso, risolto per l'entità più importante sul campo.

Ricerca full-text e ordinamento lato client direttamente su IndexedDB, funzionante con zero connettività.

Autenticazione resiliente che rinnova le sessioni in modo trasparente e ripete le richieste interrotte.

Migrazione dello storage su Azure — trasferimento dello storage dei file su CAMID Cloud con chiavi di sicurezza per funzione, isolamento per file e gestione robusta dei metadati.

Tecnologia

Ambito Tecnologia
Frontend React 18, TypeScript, Vite, Tailwind CSS v4, PWA
Livello dati locale IndexedDB (Dexie), hook reattivi live-query
Backend API Laravel headless, PHP 8.4, Laravel Passport (OAuth2)
Database e storage PostgreSQL 17, S3/MinIO, Azure (CAMID Cloud)
Architettura Domain-driven design — action class, presenter, DTO tipizzati
Monitoraggio e test Sentry, Laravel Pulse, Pest/Vitest, CI con linting e analisi statica
Lingue UI in 5 lingue: DE, IT, EN, PL, SL

Un progetto come CAMID? Parliamone.

Risultati

Continuità senza interruzioni — abbiamo preso in carico una codebase matura e mantenuto in evoluzione una piattaforma critica per il business senza fermare l'operatività.

Funzionamento offline affidabile — la rilevazione ore funziona offline e si sincronizza correttamente alla riconnessione.

Migrazione cloud senza downtime — storage migrato con successo su Azure, inclusa la gestione di sicurezza e metadati.

Produttività rapida su una codebase non familiare — lo sviluppo assistito da AI ha accelerato sensibilmente l'inserimento nel progetto.

Collaborazione stretta — incontri regolari con il cliente hanno mantenuto il lavoro allineato alle reali esigenze dei lavoratori sul campo.

Cosa rende questo progetto degno di nota

  • Un problema davvero complesso risolto bene — offline-first con sincronizzazione write-and-replay affidabile, non solo caching in sola lettura.
  • Un sistema headless con struttura domain-driven — un passo deliberato oltre il nostro approccio Laravel standard. Dimostra la capacità di adattarci e rafforzare un'architettura esistente invece di imporre la nostra.
  • Presa in carico della codebase basata sulla reputazione — CAMID ci ha scelti solo su raccomandazione dell'agenzia precedente, e a seguire abbiamo realizzato l'intera migrazione dello storage su Azure.

Domande frequenti

Come prende in carico Smart Dato un'applicazione Laravel esistente sviluppata da un'altra agenzia?

Analizziamo codebase, architettura e criticità aperte prima di intervenire. Con CAMID la priorità era la continuità di un sistema attivo e critico per il business — portarlo avanti senza interruzioni.

Cosa significa in concreto "offline-first"?

L'app funziona completamente senza connessione internet, inclusa la rilevazione ore e la ricerca. Le modifiche vengono salvate localmente e riconciliate in modo affidabile con il server al ripristino della connessione.

Perché migrare su Azure?

CAMID necessitava di uno storage cloud scalabile e sicuro per i file. Abbiamo realizzato la migrazione con chiavi di accesso per funzione e isolamento per file.

Smart Dato lavora su sistemi sviluppati da altre agenzie?

Sì, è una delle nostre competenze principali nello sviluppo Laravel. CAMID ci ha scelti su raccomandazione dell'agenzia precedente, proprio per la nostra esperienza specifica su Laravel.

Quanto è durata la realizzazione del progetto CAMID?

Circa due mesi, con un ritmo di 20-25 ore al mese (circa 40-50 ore complessive) — un impegno volutamente snello e mirato, che ha coperto la presa in carico della codebase, i miglioramenti offline e la migrazione su Azure.

Un progetto come CAMID? Parliamone.