Norca
Нотариальная платформа, где стороны, их имущество, акты и следующая за ними отчётность живут в одном учёте.
Norca — Notary Platform
Люди, их имущество, реестры и то, что попадает в отчёт.
Люди
Физические и юридические лица, каждое описано по восьми разделам: личность и гражданство, дееспособность, гражданское состояние, документы, удостоверяющие личность, адрес, занятость, статистика и противодействие отмыванию денег. Одно только гражданское состояние содержит восемьдесят пять полей — рождение, родители, дети, браки и их расторжение, смерть, и каждое имя, которое человек носил прежде.
Имущество
Тринадцать видов движимого имущества и три — недвижимого. Транспорт, деньги, требования, доли, наследственные квоты, скот — и земля, строения, помещения. Права, сервитуты, залоги, запреты и ранг ипотеки смоделированы как таковые, а не сведены к заметке.
Реестры и архив
Четыре реестра, которые ведёт нотариус: нотариальные акты, наследственные процедуры, консультации и расторжение брака по соглашению супругов. За ними — весь архив — номенклатура, внутренняя опись, постоянная и долговременная описи и фонд, вплоть до акта об уничтожении. Оттуда никогда ничего не удаляется — только помечается.
Комплаенс и отчётность
Специальная форма SPCSB для нотариусов, собранная в пятьдесят четыре колонки из того, что уже содержит акт, и показатели соответствия, посчитанные прямо из реестра — шестнадцать, вычисляемые разом.
Сторона, акт, и отчёт, который следует за ними.
-
1
Сторону вносят один раз
Нотариус открывает карточку человека, сидящего перед ним, и заполняет то, что требует закон. Каждое изменение попадает в историю, куда можно только дописывать: старое значение, новое, кто его сделал, и отметка времени, которую ставит сервер — а не браузер.
-
2
Акт попадает в свой реестр
Вид акта решает остальное: в какой реестр он попадёт, в каком отчёте будет посчитан, под каким индексом когда-нибудь уйдёт в архив. Номер составной — номер и подномер — чтобы несколько актов могли жить под одной записью.
-
3
Отчёт пишется из реестра
Когда подходит срок отчётной формы, данные уже на месте. Пятьдесят четыре колонки формы SPCSB собираются из акта; показатели соответствия считаются из самого реестра.
Акт, который регистрирует нотариус, — это те же данные, что заполняют форму по противодействию отмыванию денег и годовую статистику. Ничего не набирается дважды.
Обычные инструменты, неизменные на протяжении всей работы.
Интерфейс
Сто четыре экрана: базы данных, реестры, архив и отчёты — в одном приложении.
- TypeScript
- Next.js 14
- React 18
- Material UI
- Redux Toolkit
Сервисы
Одиннадцать сервисов на Go за единым шлюзом, общающихся между собой по типизированным контрактам, а не свободным JSON.
- Go
- gRPC
- Protocol Buffers
- Gin
Данные
Документы для учётных записей, хранилище в памяти для сессий, объектное хранилище для файлов, которые нотариус прикладывает к акту.
- MongoDB
- Redis
- MinIO
Развёртывание
Каждый сервис собирается в собственный образ, а API описывает сам себя, поэтому шлюз и интерфейс не расходятся между собой.
- Docker
- GitLab CI
- Swagger
Где платформа становится трудной, и это вовсе не бумаги.
Один человек — несколько национальных идентификаторов
Личность закреплена не за человеком, а за гражданством. Один и тот же человек имеет по записи на каждое гражданство, у каждой — свой национальный идентификатор и своё написание имени, потому что паспорта транслитерируют по-разному. Правило уникальности — частичный составной индекс по идентификатору и гражданству — частичный, чтобы лицо без гражданства не упиралось в ограничение, написанное для кого-то другого.
Кадастровый номер, который сам выстраивает свою иерархию
Молдавский кадастровый номер несёт иерархию в своих сегментах: два — участок, три — строение, четыре — помещение. Зарегистрируйте помещение, чьё строение никогда не вносили — и платформа прочитает номер, увидит, чего не хватает, и создаст участок и строение одной неделимой записью. Иерархию нельзя порвать, потому что её нельзя записать наполовину.
История изменений, которую никто не писал дважды
Один движок берёт то, что изменилось, сам обходит структуру — вложенные объекты, массивы объектов, индекс за индексом — и выдаёт по записи истории на каждое поле, со старым значением и новым. Он питает сто восемьдесят семь точек записи по всей платформе без единой строки кода на поле и работает рядом с запросом, а не внутри него, так что история никогда не замедляет нотариуса.
Сдано, и посчитано.
Два года и восемь месяцев и 4 894 коммита. К нему прикасались двадцать три человека; двенадцать его вели.
Построено, сдано — и используется в нотариальных бюро.
Есть идея для проекта? Запросите предложение!
Есть проект? Напишите нам, если хотите поработать вместе над чем-то интересным. Или вам нужна наша помощь? Не стесняйтесь обращаться к нам.