Информационные технологии и интернет
Август 2026
Создать демонстрационную B2B-систему, которая показывает полный жизненный цикл перевозки через единый рабочий интерфейс: от подготовки и погрузки до доставки, разгрузки, подтверждения завершения и обработки нештатных ситуаций.
Требовалось объединить в одной модели несколько ролей участников процесса, серверно контролируемые переходы между статусами, историю событий и понятные пользовательские сценарии.
Отдельной задачей было показать не только основной маршрут перевозки, но и branch/recovery-сценарий: возникновение проблемы в пути, перевод перевозки в состояние, требующее внимания, управленческое подтверждение решения и возврат в обычный workflow.
Проект создавался как публичное синтетическое B2B-демо для демонстрации архитектуры индивидуальных систем автоматизации транспортных процессов. Реальные транспортные документы, персональные данные и юридически значимое подписание в проекте не используются.
ETRN Flow реализован как fullstack-приложение с отдельным web-интерфейсом, backend API и PostgreSQL.
Пользователь получает изолированную гостевую сессию и может работать с заранее подготовленными демонстрационными перевозками. Для каждой перевозки доступен управляемый жизненный цикл, а действия выполняются от имени конкретных ролей — склада, водителя, грузополучателя и менеджера.
Все изменения состояния контролируются на серверной стороне: клиент передаёт только выбранное действие и роль, а следующий статус вычисляется доменной логикой. Каждое изменение записывается в append-only историю событий.
Помимо основного сценария до статуса completed, реализован отдельный recovery-сценарий: перевозка может перейти в состояние attention_required, после чего менеджер подтверждает решение проблемы и возвращает процесс в рабочий поток.
Frontend построен на React, TypeScript и Vite. Backend реализован на Node.js, TypeScript и Fastify. Для хранения данных используется PostgreSQL с Drizzle ORM.
Для production-развёртывания настроены Docker Compose, Nginx, HTTPS, health-checks, CI-проверки, security scanning, резервное копирование PostgreSQL и проверка восстановления данных.
В результате получился публично доступный демонстрационный контур, который показывает, как можно объединить роли, статусы, бизнес-правила, отклонения и историю операций в одной прикладной B2B-системе.
В результате был создан и развернут публичный демонстрационный B2B-контур управления жизненным циклом перевозки.
Система позволяет пройти полный сценарий: от подготовки и погрузки до перевозки, разгрузки и подтверждения завершения, при этом каждое действие выполняется в рамках конкретной роли и допустимого состояния процесса.
Дополнительно реализован сценарий отклонения и восстановления: при возникновении проблемы перевозка переводится в состояние, требующее внимания, после чего менеджер может подтвердить решение и вернуть процесс в основной workflow.
Все переходы между статусами контролируются серверной логикой и фиксируются в истории событий. Для каждого посетителя создаётся изолированная гостевая сессия с подготовленными демонстрационными сценариями.
Проект развернут на публичном VPS и получил production-контур с HTTPS, Docker Compose, Nginx, health-checks, CI, security-проверками и резервным копированием PostgreSQL.
ETRN Flow демонстрирует, как индивидуальная B2B-система может объединять роли, статусы, бизнес-правила, исключения и историю операций в одном рабочем интерфейсе, не претендуя при этом на функции юридически значимого ЭДО или подключение к ГИС ЭПД.
![]()
Станислав Ларин
Fullstack-разработчик
В ETRN Flow нам было важно показать не просто набор экранов, а управляемый бизнес-процесс. Поэтому архитектура строилась вокруг серверно контролируемого lifecycle, ролей участников, истории событий и отдельного recovery-сценария. Такой подход хорошо переносится на реальные внутренние системы, где критичны предсказуемость состояний, прозрачность действий и контроль исключений.