Российский FTL-перевозчик решил создать «Убер для грузовиков» с целью привлечения корпоративных клиентов. Команда аутстаффинга iStaff-it подключилась к проекту, чтобы разработать рабочий кабинет для юрлиц, использующих эту инфраструктуру.
Личный кабинет — это единое окно, в котором можно создавать заявки на перевозки, контролировать статусы рейсов, отслеживать документооборот и просматривать истории поездок. В рамках своих задач специалисты iStaff-it занялись проектированием и разработкой веб-приложения на Vue.js, бэкенд-сервисов на Java Spring Boot и баз данных микросервисной архитектуры.
Архитектура и стек
Система строилась на микросервисном подходе. Каждый сервис «отвечал» за свою зону — заказы, рейсы, биллинги, справочники, права доступа пользователей и так далее.
В основной стек вошли:
- Бэкенд — Java + Spring Boot.
- Работа с данными — Hibernate + JPA.
- Миграция БД — Liquibase.
- Аутентификация и авторизация — Spring Security.
- Основная СУБД — PostgreSQL.
- Фронтенд — Vue.js.
Команда iStaff-it взялась за полный цикл фронтенд- и бэкенд-разработки: от проектирования микросервисов до реализации интерфейса. Решения на Vue.js и Java Spring с PostgreSQL, Hibernate, Liquibase и Spring Security должны были обеспечить масштабируемость. Чтобы архитектура развивалась прозрачно, а новые сервисы подключались без переработки ядра.
Backend — микросервисы и работа с данными
Эксперты iStaff-it участвовали в проектировании и реализации нескольких микросервисов, связанных с личным кабинетом:
- заказы FTL-перевозок;
- клиенты и их учетные записи;
- статусы рейсов и событий по поездкам;
- интеграции со смежными системами перевозчика.
На Spring Boot были настроены REST-контроллеры и DTO-модели. Доступ к данным реализован через Hibernate/JPA: описаны сущности для заявок, рейсов, контрагентов, пользователей, прав доступа и журналов изменений. Для роста производительности были продуманы индексы, связи и ограничения в PostgreSQL.
Схема базы данных и изменения структуры управлялись через Liquibase. Команда описывала миграции в чейнджлогах, что позволило последовательно разворачивать и обновлять БД на разных стендах без ручных правок. Это особенно важно в микросервисной архитектуре, где каждый сервис может иметь свою схему.
Безопасность обеспечивалась за счет Spring Security: был реализован механизм аутентификации пользователей, разграничение прав по ролям (например, администратор, менеджер, «только на просмотр»), настройка доступа к отдельным эндпоинтам. Также учитывались требования к хранению и передаче данных, чтобы кабинет можно было использовать в корпоративной среде заказчика.
Frontend — личный кабинет на Vue.js
Вместо того чтобы нанять отдельных фронтенд-разработчиков для создания веб-приложения ЛК на Vue.js, клиент обратился к нам. Основными зонами ответственности команды iStaff-it стали:
- создание и редактирование заявок на перевозку;
- список текущих и завершенных рейсов;
- просмотр статусов и уведомлений по поездкам;
- управление профилями и данными компаний.
Компонентный подход Vue.js позволил вынести повторяющиеся элементы (формы, таблицы, панели фильтров, модальные окна) в переиспользуемые компоненты. Интерфейс взаимодействует с микросервисами через REST-API: реализована работа с токенами, обработка ошибок, отображение состояний загрузки, валидация форм перед отправкой данных.
Для удобства пользователей-юрлиц были продуманы фильтры по датам, маршрутам, статусам рейсов, а также поиск по номеру заказа или машине. Это упростило работу диспетчеров и менеджеров на стороне клиента.
Интеграции и веб-сервисы
Отдельный блок работ — разработка веб-сервисов и интеграций со смежными системами перевозчика. Например, для учета автопарка, подключения внутренних CRM или создания биллинговых и отчетных систем соответственно.
Были реализованы:
- REST-эндпоинты для обмена данными о рейсах и статусах;
- сервисы для синхронизации справочников и клиентских данных;
- механизмы логирования и трассировки запросов.
Это позволило личному кабинету работать не изолированно, а как часть единой цифровой экосистемы перевозчика.
Качество, документация и приемка
В рамках проекта команда iStaff-it отвечала не только за создание модулей, но и за полный инженерный цикл: тестирование, анализ кода, документирование решений и участие во внедрении системы в контур заказчика. Мы:
- разрабатывали юнит-тесты для основной логики микросервисов;
- проводили анализ кода, ревью решений и контроль документации;
- описывали структуру БД, API и сценариев использования;
- участвовали в приемо-сдаточных испытаниях бизнес-сценариев;
- проводили нагрузочные и интеграционные тесты.
Такой подход позволил нам не создать не столько работающий личный кабинет, сколько поддерживаемое решение с понятной архитектурой и адекватной документацией.
Результаты
В итоге «Убер для грузовиков» получил весь нужный функционал. Сегодня он обеспечивает онлайн-управление заявками на FTL-перевозки вместе с прозрачным контролем статусов рейсов. Использование связки Vue.js + Java Spring Boot + PostgreSQL в микросервисной архитектуре позволило построить гибкое, технически прозрачное решение, которое теперь поддается развитию без полного пересоздания платформы.