AUSIR
Piattaforma per le Conferenze di Servizi
2023 - now · Architettura di piattaforma e ingegneria
Piattaforma interna per AUSIR, l'autorità del Friuli Venezia Giulia per acqua e rifiuti, che gestisce le Conferenze di Servizi end to end — enti, fasi e pareri su un motore di scadenze legalmente esatto che conta giorni lavorativi e festività, con decadenza automatica dei decreti, un calendario e notifiche.
Trasformare una procedura legale in software funzionante
AUSIR — Autorità Unica per i Servizi Idrici e Rifiuti — è l’unica autorità regionale che governa il servizio idrico integrato e la gestione dei rifiuti urbani per tutto il Friuli Venezia Giulia, con la partecipazione di ogni comune della regione. La piattaforma costruita per essa gestisce un processo legale specifico e vincolato da scadenze: la Conferenza di Servizi attraverso cui vengono autorizzati i progetti infrastrutturali.
Una Conferenza di Servizi non è una riunione; è una procedura regolamentata. Quando un progetto avanza — ad esempio un “Masterplan degli acquedotti” con lavori urgenti su una condotta idrica principale — AUSIR deve raccogliere i pareri formali (pareri) da ogni ente coinvolto, entro i termini di legge, e concludere con un decreto. Le scadenze sono perentorie: mancarne una, conteggiarne una in modo errato, e la posizione giuridica cambia. Il compito del prodotto è tenere insieme l’intera procedura così che chi la conduce possa fidarsi delle date anziché ricalcolarle a mano.
Il sistema modella la procedura come una macchina a stati esplicita. Una conferenza attraversa fasi e sotto-fasi — una fase di istruttoria, poi una conferenza semplificata, poi, dove serve, una conferenza completa — ciascuna con i propri stati (completa, non completa, sospesa) e la propria finestra di legge, dallo step istruttorio di cinque giorni alle conferenze a 60/70 e 125/180 giorni. La lista delle conferenze è la base operativa: ogni procedura con i suoi ID di anno, progetto e conferenza, lo stato corrente, l’ultimo evento e l’oggetto. Aprirne una rivela le superfici di lavoro — Stato e azioni, Informazioni, Calendario, Atti, Verbali e Note e commenti — in cui un operatore vive lungo tutta la vita di un caso.
Il cuore della piattaforma è il motore di scadenze, ed è qui che si è concentrata la maggior parte della cura ingegneristica, perché qui il rischio legale è più alto. I termini non vengono mai contati in giorni di calendario grezzi. Sono calcolati sui giorni lavorativi, saltando i fine settimana e un insieme gestito di festività — festività nazionali italiane, regionali e i giorni di chiusura propri di AUSIR, pre-popolati per anni in anticipo — con qualsiasi scadenza che cade in un giorno di chiusura riposizionata al successivo giorno lavorativo. A questo si aggiunge la logica della ricezione dei pareri: la data in cui un parere è stato effettivamente ricevuto può differire dalla data in cui è stato caricato, perciò il sistema registra la data di ricezione reale, consente la retrodatazione ma blocca le date future e valuta lo stato della conferenza a quella data anziché a oggi. Un parere negativo può spingere la procedura in una conferenza di seconda fase. Ciascuna di queste mosse viene scritta in una traccia di audit con l’utente che l’ha eseguita.
Attorno a quel motore, il resto della procedura è automatizzato anziché sorvegliato a mano. La decadenza dei decreti è gestita da job pianificati che chiudono i termini e sollevano gli avvisi in tempo; un calendario dispone scadenze ed eventi per settimana, segnalando ciò che è in scadenza; e le notifiche raggiungono gli operatori sia nell’app sia via email, generate da template sul server. Un modulo di anagrafica conserva gli enti partecipanti e i loro referenti, legando ciascuno alle conferenze a cui prende parte, mentre documentazione, atti e verbali sono consolidati per conferenza così che nulla resti solo nella casella di posta di qualcuno.
Sotto il cofano è un sistema self-hosted a due livelli. L’admin è una single-page app Vue 3 — Vite, Pinia, template Pug, Tailwind con DaisyUI, un componente calendario e accesso Supabase — supportata da un’API NestJS con validazione Zod, autenticazione JWT, email internazionalizzata tramite Handlebars e la stessa aritmetica dei giorni lavorativi condivisa end to end attraverso un pacchetto TypeScript comune. Dati, autenticazione e storage girano su uno stack Supabase e PostgreSQL self-hosted, avviato con Docker Compose insieme a storage compatibile S3 e cron job pianificati. Il risultato è uno strumento focalizzato per la pubblica amministrazione che prende una coreografia legale lenta e soggetta a errori e la rende tracciabile, automatica e puntuale.
Galleria






