Перейти к содержимому
Кейс

Norca

Нотариальная платформа, где стороны, их имущество, акты и следующая за ними отчётность живут в одном учёте.

104Построенных экрана 250+Полей на одного человека 11Сервисов в основе 4Нотариальных реестра
Что мы построили

Люди, их имущество, реестры и то, что попадает в отчёт.

Люди

Физические и юридические лица, каждое описано по восьми разделам: личность и гражданство, дееспособность, гражданское состояние, документы, удостоверяющие личность, адрес, занятость, статистика и противодействие отмыванию денег. Одно только гражданское состояние содержит восемьдесят пять полей — рождение, родители, дети, браки и их расторжение, смерть, и каждое имя, которое человек носил прежде.

Имущество

Тринадцать видов движимого имущества и три — недвижимого. Транспорт, деньги, требования, доли, наследственные квоты, скот — и земля, строения, помещения. Права, сервитуты, залоги, запреты и ранг ипотеки смоделированы как таковые, а не сведены к заметке.

Реестры и архив

Четыре реестра, которые ведёт нотариус: нотариальные акты, наследственные процедуры, консультации и расторжение брака по соглашению супругов. За ними — весь архив — номенклатура, внутренняя опись, постоянная и долговременная описи и фонд, вплоть до акта об уничтожении. Оттуда никогда ничего не удаляется — только помечается.

Комплаенс и отчётность

Специальная форма SPCSB для нотариусов, собранная в пятьдесят четыре колонки из того, что уже содержит акт, и показатели соответствия, посчитанные прямо из реестра — шестнадцать, вычисляемые разом.

Как это работает

Сторона, акт, и отчёт, который следует за ними.

  1. 1

    Сторону вносят один раз

    Нотариус открывает карточку человека, сидящего перед ним, и заполняет то, что требует закон. Каждое изменение попадает в историю, куда можно только дописывать: старое значение, новое, кто его сделал, и отметка времени, которую ставит сервер — а не браузер.

  2. 2

    Акт попадает в свой реестр

    Вид акта решает остальное: в какой реестр он попадёт, в каком отчёте будет посчитан, под каким индексом когда-нибудь уйдёт в архив. Номер составной — номер и подномер — чтобы несколько актов могли жить под одной записью.

  3. 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 коммита. К нему прикасались двадцать три человека; двенадцать его вели.

3 000Часов разработки

Построено, сдано — и используется в нотариальных бюро.

Контакты

Есть идея для проекта? Запросите предложение!

Есть проект? Напишите нам, если хотите поработать вместе над чем-то интересным. Или вам нужна наша помощь? Не стесняйтесь обращаться к нам.