AUSIR
Платформа для службових конференцій
2023 - now · Архітектура платформи та інженерія
Внутрішня платформа для AUSIR, відомства Фріулі-Венеція-Джулія з води та відходів, яка веде Conferenze di Servizi від початку до кінця — суб'єкти, етапи та висновки поверх юридично точного рушія строків, що рахує робочі дні та свята, з автоматичним спливанням декретів, календарем і сповіщеннями.
Перетворення юридичної процедури на робоче програмне забезпечення
AUSIR — Autorità Unica per i Servizi Idrici e Rifiuti — це єдине регіональне відомство, яке керує інтегрованою водною службою та поводженням з міськими відходами для всього регіону Фріулі-Венеція-Джулія, за участі кожного муніципалітету регіону. Побудована для нього платформа веде один конкретний, прив’язаний до строків юридичний процес: Conferenza di Servizi, за допомогою якої авторизуються інфраструктурні проєкти.
Conferenza di Servizi — це не нарада; це регламентована процедура. Коли проєкт просувається — скажімо, «Masterplan degli acquedotti» з терміновими роботами на магістральному водогоні — AUSIR має зібрати формальні висновки (pareri) від кожного залученого суб’єкта у встановлені законом строки й завершити процедуру декретом. Строки преклюзивні: пропусти один, порахуй один неправильно — і юридичне становище змінюється. Завдання продукту — утримувати всю процедуру разом, щоб ті, хто її веде, могли довіряти датам, а не перераховувати їх вручну.
Система моделює процедуру як явний скінченний автомат. Конференція проходить через етапи та підетапи — етап istruttoria, потім спрощену конференцію, потім, за потреби, повну конференцію — кожен зі своїми статусами (completa, non completa, sospesa) та своїм законним вікном, від п’ятиденного кроку розгляду до конференцій на 60/70 та 125/180 днів. Список конференцій — це операційний дім: кожна процедура зі своїми ідентифікаторами року, проєкту та конференції, поточним статусом, останньою подією та темою. Відкриття однієї з них розкриває робочі поверхні — Stato e azioni, Informazioni, Calendario, Atti, Verbali та Note e commenti — у яких оператор живе впродовж усього життя справи.
Серце платформи — рушій строків, і саме йому було віддано більшу частину інженерної уваги, бо тут юридичний ризик найвищий. Строки ніколи не рахуються в сирих календарних днях. Вони обчислюються за робочими днями, пропускаючи вихідні та керований набір свят — італійські національні свята, регіональні та власні дні закриття AUSIR, попередньо заповнені на роки наперед — при цьому будь-який строк, що випадає на неробочий день, переноситься на наступний робочий день. Поверх цього лежить логіка отримання висновків: дата, коли parere було фактично отримано, може відрізнятися від дати його завантаження, тому система записує реальну дату отримання, дозволяє заднім числом, але блокує майбутні дати, та оцінює стан конференції на цю дату, а не на сьогодні. Негативний висновок може перевести процедуру в конференцію другого етапу. Кожен із цих кроків записується до журналу аудиту разом із користувачем, який його здійснив.
Навколо цього рушія решта процедури автоматизована, а не потребує ручного нагляду. Спливання декретів обробляється запланованими завданнями, які вчасно закривають строки та піднімають сповіщення; календар розкладає строки та події по тижнях, позначаючи те, що in scadenza; а сповіщення доходять до операторів як у застосунку, так і електронною поштою, згенеровані з шаблонів на сервері. Модуль anagrafica зберігає суб’єкти-учасники та їхніх referenti, прив’язуючи кожного до конференцій, у яких він бере участь, тоді як документація, акти та протоколи консолідуються за конференцією, щоб ніщо не існувало лише в чиїйсь поштовій скриньці.
Під капотом це самостійно розміщувана дворівнева система. Адмінка — односторінковий застосунок на Vue 3 — Vite, Pinia, шаблони Pug, Tailwind з DaisyUI, компонент календаря та доступ до Supabase — підтримувана API на NestJS з валідацією Zod, автентифікацією JWT, інтернаціоналізованою електронною поштою через Handlebars та тією самою арифметикою робочих днів, спільною від початку до кінця через спільний пакет TypeScript. Дані, автентифікація та сховище працюють на самостійно розміщуваному стеку Supabase та PostgreSQL, що піднімається за допомогою Docker Compose разом із S3-сумісним сховищем та запланованими завданнями cron. Результат — сфокусований інструмент для державного управління, який бере повільну, схильну до помилок юридичну хореографію та робить її простежуваною, автоматичною та своєчасною.
Галерея






