Задача
Непрерывное медицинское образование в Италии строго регулируется: каждый курс, каждая запись и каждый кредит должны быть прослеживаемы на протяжении многих лет. Клиент вёл всё это в учётной системе, созданной много лет назад, которая стала тормозом для бизнеса — медленная, трудная в доработке и не допускающая расширения без того, чтобы не сломать что-то ещё. Переписать её означало перенести реальные данные за два десятилетия, не потеряв ни одной записи.
Что я сделал
Полностью новую платформу управления, с нуля:
- Управление курсами и кредитами аккредитованного непрерывного образования, с отчётностью, которой требует регулятор.
- Записи, участники и сертификаты, с полностью сохранённой историей каждого специалиста.
- Миграцию рабочих данных: 20 445 контактов и 39 970 записей на курсы перенесены из старой системы и проверены запись за записью.
- Отдельную платформу для исследовательских данных (SESP Data) для исследовательского проекта с финансированием ЕС, где сама платформа — один из результатов проекта, а не просто инструмент.
Технологии
React на фронтенде, NestJS и PostgreSQL на бэкенде, на выделенном сервере. Исследовательская платформа — приложение на Next.js. Ни один фреймворк не выбирался ради моды: старая система провалилась потому, что её нельзя было безопасно менять, поэтому новая типизирована от начала до конца, а её модель данных описана явно, а не подразумевается.
Почему именно так
Новая система работала параллельно со старой, а не заменила её за одну ночь. В непрерывном образовании сроки установлены законом: неудачный переход означал бы не день простоя, а потерю специалистами уже заработанных кредитов. Сначала были перенесены данные и сверены с итоговыми цифрами самой старой системы, и только после этого что-либо было переключено.


