Skip to content

AUSIR

Service-conference platform

2023 - now · Platform architecture and engineering

Internal platform for AUSIR, the Friuli Venezia Giulia authority for water and waste, that runs Conferenze di Servizi end to end — entities, phases and opinions on top of a legally-exact deadline engine that counts working days and holidays, with automatic decree expiry, a calendar and notifications.

Turning a Legal Procedure Into Working Software

AUSIR — Autorità Unica per i Servizi Idrici e Rifiuti — is the single regional authority that governs the integrated water service and urban-waste management for the whole of Friuli Venezia Giulia, with every municipality in the region taking part. The platform built for it runs one specific, deadline-bound legal process: the Conferenza di Servizi through which infrastructure projects are authorized.

A Conferenza di Servizi is not a meeting; it is a regulated procedure. When a project moves forward — say a “Masterplan degli acquedotti” with urgent works on a major water main — AUSIR has to gather formal opinions (pareri) from every entity involved, inside statutory time limits, and conclude with a decree. The deadlines are peremptory: miss one, mis-count one, and the legal position changes. The product’s job is to hold that whole procedure together so the people running it can trust the dates rather than recompute them by hand.

The system models the procedure as an explicit state machine. A conference moves through phases and sub-phases — an istruttoria phase, then a simplified conference, then, where needed, a full conference — each with its own statuses (completa, non completa, sospesa) and its own statutory window, from the five-day instruction step to the 60/70- and 125/180-day conferences. The conference list is the operational home: every procedure with its year, project and conference IDs, current status, last event and subject line. Opening one reveals the working surfaces — Stato e azioni, Informazioni, Calendario, Atti, Verbali and Note e commenti — that an operator lives in across the life of a case.

The heart of the platform is the deadline engine, and it is where most of the engineering care went, because here the legal risk is highest. Terms are never counted in raw calendar days. They are computed over working days, skipping weekends and a managed set of holidays — Italian national holidays, regional ones and AUSIR’s own closure days, pre-populated for years ahead — with any deadline that lands on a closed day relocated to the next working day. On top of that sits the logic of opinion receipt: the date a parere was actually received can differ from the date it was uploaded, so the system records the real receipt date, allows back-dating but blocks future dates, and evaluates the conference’s state as of that date rather than today. A negative opinion can push the procedure into a second-phase conference. Every one of these moves is written to an audit trail with the user who made it.

Around that engine, the rest of the procedure is automated rather than babysat. Decree expiry is handled by scheduled jobs that close terms and raise alerts on time; a calendar lays the deadlines and events out by week, flagging what is in scadenza; and notifications reach operators both in the app and by email, generated from templates on the server. An anagrafica module keeps the participating entities and their referenti, tying each to the conferences they take part in, while documentation, acts and verbal records are consolidated per conference so nothing lives only in someone’s inbox.

Under the hood it is a self-hosted, two-tier system. The admin is a Vue 3 single-page app — Vite, Pinia, Pug templates, Tailwind with DaisyUI, a calendar component and Supabase access — backed by a NestJS API with Zod validation, JWT auth, internationalized email via Handlebars and the same working-day arithmetic shared end to end through a common TypeScript package. Data, auth and storage run on a self-hosted Supabase and PostgreSQL stack, brought up with Docker Compose alongside S3-compatible storage and scheduled cron jobs. The result is a focused public-administration tool that takes a slow, error-prone legal choreography and makes it traceable, automatic and on time.

Gallery