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. Результат — сфокусированный инструмент для государственного управления, который берёт медленную, подверженную ошибкам юридическую хореографию и делает её прослеживаемой, автоматической и своевременной.
Галерея






