01 · CONTESTO
La sfida
L'impianto gestito da Eden riceve le richieste di cremazione dalle onoranze funebri del territorio: telefonate, email e un registro condiviso. Con tre forni attivi e una decina di slot al giorno bastava una svista per avere due bare sullo stesso orario o per accettare una prenotazione in un giorno di chiusura. La disponibilità reale dipende da variabili che nessun foglio di calcolo tiene insieme — festivi, manutenzioni ordinarie e straordinarie sul singolo forno, orari ridotti in vigilia — e ogni annullamento dell'ultimo minuto lasciava uno slot bruciato. Sul fronte amministrativo, tariffe, incassi e verbali emessi vivevano fuori dal sistema, senza tracciabilità di chi avesse fatto cosa.
02 · APPROCCIO
La soluzione
Abbiamo costruito **Beatrix**: due applicazioni Angular 21 (Material, standalone components, lazy loading per ogni feature) su un unico backend Supabase con Postgres, Auth, Storage, Realtime ed Edge Functions. La console di amministrazione ha tre livelli di permesso — **amministrazione**, **prenotazioni**, **operatore** — più una vista "giornata" ridotta per chi lavora a bordo forno: calendario FullCalendar con risorse per forno, elenco prenotazioni, anagrafica clienti, gestione utenti, tariffario con imponibile e IVA, impostazioni di pagamento, manutenzioni per forno e intervallo, festivi, configurazione slot ed eccezioni ricorrenti (vigilie e festività con ultimo slot anticipato), statistiche con grafici ed export Excel, log eventi. L'app clienti offre prenotazione guidata sugli slot realmente liberi, storico personale, profilo e pagamento. **Le regole critiche vivono nel database**: un indice univoco parziale impedisce due prenotazioni confermate sullo stesso slot-forno, i trigger bloccano l'annullamento a meno di 12 ore dalla cremazione e contano la quota mensile di annullamenti per cliente, le policy RLS separano i dati di ogni onoranza funebre. Il pagamento con carta passa da Stripe Checkout: la prenotazione non esiste finché il webhook non conferma l'incasso e, se nel frattempo lo slot risulta occupato, il pagamento viene rimborsato automaticamente. In alternativa si paga in sede, con la prenotazione confermata e il pagamento in attesa. L'onboarding delle onoranze funebri è avvenuto in un unico import massivo, con creazione degli account e invio automatico delle credenziali.
03 · RISULTATO
L'impatto
Le onoranze funebri prenotano da sole, sugli slot davvero disponibili, e vedono subito l'esito. L'ufficio ha una vista unica su calendario, clienti, tariffe e incassi, e chi lavora a bordo forno apre la pagina della giornata senza accedere ad altro. Le sovrapposizioni sullo stesso forno sono impossibili per costruzione, l'annullamento tardivo e l'abuso degli annullamenti sono governati da regole scritte una volta sola lato database, e ogni operazione finisce nel log eventi con autore e timestamp. Il sistema è in produzione con **77 agenzie funebri accreditate**.



