App mobile Cappster per la valutazione sensoriale del caffè
Per Imperator abbiamo realizzato da zero Cappster: l'app iOS e Android con cui si compilano le schede di degustazione, anche senza rete, e la dashboard web per consultare le sessioni e aggregare i risultati di più assaggiatori.

Contesto e premesse
Dalle schede cartacee alla sessione di degustazione
Imperator S.r.l. importa e distribuisce caffè crudo e ha sede a Trieste. Voleva un'app per appassionati e professionisti della degustazione, al posto di sette schede cartacee compilate a mano. Sono modelli diffusi a livello mondiale e coprono la valutazione olfattiva, sensoriale, fisica ed estrinseca.
La soluzione è rivolta soprattutto a chi degusta il caffè per lavoro: traccia caratteristiche organolettiche e aromi, salva la sessione anche senza rete e la invia al backend appena la connessione torna. Una seconda versione, sull'app già pubblicata sugli store, ha aggiunto le sessioni condivise e l'analisi di gruppo.
H2App ha progettato e sviluppato l'app mobile, il backend e la dashboard. Il canale mobile raccoglie le schede. Il canale web serve a consultarle e ad analizzarle.
Più schede in una sessione
Una sessione ha un nome, una data e uno o più campioni. Per ogni campione si sceglie una scheda. Alcuni campi sono in comune tra tipologie diverse.
Sessioni condivise
Il Leader indica quali campioni far compilare, il numero di lotto e le email degli invitati. L'app deve capire se quella persona ha già una sessione sullo stesso lotto.
Degustazione anche senza rete
La compilazione prosegue offline e i dati restano sul telefono. L'app li invia da sola al backend, alla prima occasione in cui c'è una rete disponibile.
Obiettivi del progetto
Cosa doveva ottenere Cappster
Imperator chiedeva uno strumento da usare durante l'assaggio, con una grafica attuale e una compilazione intuitiva, e un secondo canale per rileggere e confrontare i dati raccolti.
Obiettivi funzionali
- Schede digitali al posto dei moduli cartacei di valutazione olfattiva, sensoriale, fisica ed estrinseca.
- Sessioni con più campioni, ciascuna con la propria scheda, e uno storico consultabile.
- Ruolo Leader per creare una sessione condivisa e invitare altri utenti.
- Dashboard web per anagrafiche, report aggregati, analisi di gruppo ed export.
Obiettivi tecnici
- Sviluppo da zero dell'app, con un'unica base Flutter per iOS e Android.
- Backend Laravel e MySQL, con dashboard amministrativa in Laravel Nova.
- Salvataggio locale e invio differito al cloud.
- Migrazione dei dati tra la prima e la seconda versione, sull'app e sul server, per non perdere le schede già compilate.
Compilazione e cloud
Account pubblico, schede di tipologia diversa, lavoro offline, storico per sessione e dashboard con anagrafiche utenti, numero di schede, tipologia e punteggi medi.
Sessioni di gruppo
Inviti del Leader, scheda descrittiva combinata, analisi di gruppo con grafico a ragnatela, gestione dei descrittori ed export Excel e PDF. Il database è stato riorganizzato insieme all'app già sugli store.
La soluzione di H2App
Una scheda per campione, una dashboard per il gruppo
L'accesso è con username e password, registrazione pubblica e recupero password. Il social login è fuori dal perimetro. Dalla home si apre una sessione: nome, data, numero di campioni e, per ciascuno, una scheda. Lo storico raggruppa le compilazioni già fatte. Dal dettaglio si rileggono i dati e si possono correggere alcuni campi anche dopo l'invio al server.
Widget pensati per l'assaggio, non per un modulo generico
Le schede condividono alcuni campi e cambiano i controlli in base al tipo di valutazione. Il punteggio si apre con il comando Show score, così durante la compilazione restano in primo piano scale, cursori e descrittori.
- nell'Arabica Cupping Form, bilanciamento su scala e uniformità segnata con le icone dei chicchi;
- nella CVA Affective Form, scala da 1 a 9 e descrittori applicati come etichette, per esempio Blackberry e Raisin;
- livello di tostatura su un cursore a gradiente, e Fragrance/Aroma con le sotto-voci Dry e Break.
Le sette schede digitalizzate sono:
- SCA Arabica Cupping Form;
- Fine Robusta Cupping Form;
- Cup of Excellence Cupping Form;
- SCA Simplified Cupping Form;
- CVA Descriptive Form;
- CVA Affective Form;
- CVA Combined Form, che riunisce valutazione descrittiva, affettiva ed estrinseca.

Conteggi e difetti, categoria per categoria
Il conteggio dei difetti è una tabella: per ogni voce si registrano quantità e defects. Accanto al nome compare il rapporto usato da quella voce, per esempio 1:1 o 5:1. Anche qui il punteggio resta dietro a Show score e l'invio è un'azione esplicita, con il pulsante Send.
- la sessione si salva in locale se manca la rete;
- l'invio al backend parte in automatico appena la connessione torna;
- alcune schede, nello storico, includono un grafico delle metriche della valutazione.

Il Leader invita, l'app riconosce il lotto
Il Leader sceglie quali campioni della sessione far compilare, inserisce il numero di lotto, una breve frase scritta da lui e gli indirizzi email, poi conferma. Chi è registrato con uno di quegli indirizzi riceve una notifica push e trova l'invito in una sezione dell'app. È il caso tipico di un assaggio fatto insieme, nello stesso evento. Se il lotto è già in una sessione compilata, l'app lo riconosce da sola e chiede conferma prima di condividerla.
Sessione ancora da compilare
L'invitato parte dall'invito e compila i campioni indicati dal Leader.
Lotto già registrato
Se la sessione esiste e contiene quel numero di lotto, l'app lo riconosce e chiede conferma prima di condividerla con il Leader.
Sessione senza numero di lotto
L'app chiede di scegliere, tra le sessioni già compilate, quella che corrisponde al lotto e alla frase dell'invito.
Dal singolo assaggio al risultato del panel
La dashboard è costruita con Laravel Nova. Nella prima versione l'amministratore consulta gli utenti registrati e i report aggregati: quante schede sono state compilate, di che tipo, e qual è il punteggio medio. Con la seconda versione il Leader vede le sessioni per cui ha invitato almeno una persona.
Sessioni del Leader
Elenco delle sessioni condivise, utenti invitati e dati aggregati. Si possono attivare o disattivare i partecipanti per restringere il calcolo.
Punteggio medio
Dove la scheda ha un punteggio totale, la dashboard mostra anche la media. L'analisi di gruppo usa un grafico a ragnatela, non solo il grafico del singolo.
Schede raggruppate
Schede simili si accorpano: tutte le descrittive, tutte le affettive o tutte le Cup of Excellence. Si scelgono a mano gli utenti da includere nel risultato del panel.
Descrittori ed export
Un descrittore scelto da più persone viene evidenziato, per esempio con il moltiplicatore ×2. L'admin può unire descrittori equivalenti e scaricare PDF ed Excel.
La scheda descrittiva combinata riunisce più valutazioni in un'unica scheda aggregata, descrittiva, affettiva o estrinseca, con la stessa logica della combined form già presente. Si consulta dall'app e dalla dashboard.
Aspetti innovativi
Le scelte che rendono usabile la scheda
Controlli diversi per ogni scheda
Cursori, scale numeriche, etichette e icone dei chicchi sostituiscono la compilazione a mano. Il comando Show score tiene il punteggio fuori dal campo visivo finché non lo si chiede.
Il lotto collega gli assaggiatori
Il numero di lotto è la chiave con cui l'app propone di unire una sessione già compilata all'invito del Leader, dopo la conferma di chi l'ha registrata.
Grafico di gruppo, non solo individuale
L'analisi del panel è un grafico a ragnatela aggregato. I descrittori ripetuti pesano di più in visualizzazione e l'admin può fondere quelli equivalenti, per esempio orange blossom e orange.
Il progetto in pillole
- Cliente
- Imperator S.r.l.
- Settore
- Alimentare
- Pubblicazione
- 2025
- Piattaforme
- iOS, Android e web
- Tecnologie
- Mobile, Web
- Target utenti
- Consumer
Strumenti utilizzati
Flutter
Firebase
Laravel
MySQL
Componenti
- Laravel Nova
- Dashboard web
- Salvataggio offline
Flutter è l'app iOS e Android. Laravel e MySQL sono il backend e il database. Laravel Nova è l'interfaccia della dashboard. Firebase monitora i crash e consegna la notifica push quando arriva l'invito a una sessione condivisa.
Il risultato finale
Le schede di assaggio, sul telefono e in archivio
Cappster è pubblicata su App Store e Google Play. La prima versione copre la compilazione e il cloud. La seconda aggiunge il lavoro di gruppo sulla stessa sessione.
Annotazione strutturata, durante l'assaggio
Le caratteristiche del caffè si registrano sulla scheda giusta, con i controlli di quella tipologia, anche se in quel momento non c'è rete.
Storico, confronto e aggregazione
Le sessioni restano consultabili. Più schede e più assaggiatori si possono confrontare e riassumere in un risultato di panel, con punteggio medio dove la scheda lo prevede.
Report per l'amministratore
Dalla dashboard l'admin scarica le schede, singole o accorpate, in PDF e in Excel.
Cosa abbiamo consegnato
- App iOS
- App Android
- Account, recupero e modifica password
- Schede di degustazione e storico sessioni
- Salvataggio offline e invio al cloud
- Inviti, messaggio del Leader e notifica push
- Scheda descrittiva combinata
- Dashboard Laravel Nova
- Analisi di gruppo e grafico a ragnatela
- Export PDF ed Excel
- Migrazione dati tra le due versioni

