Логистика ERP / CRM
InterRail
ERP и CRM платформы, построенные с нуля для полной автоматизации бизнес-процессов международной железнодорожной логистической компании — бухгалтерия, управление договорами, отслеживание KPI и обработка документов с ИИ.
Обзор
InterRail — набор ERP и CRM систем, которые я построил с нуля для международной компании железнодорожных грузоперевозок, работающей в Центральной Азии и России. До этих инструментов команда отслеживала заказы, контракты и KPI в таблицах. Теперь всё — от запроса через отгрузку до финансового расчёта — живёт в одном месте, используется ежедневно в 6+ странах.
Что я сделал
Построил оба ERP-бэкенда с нуля на Django — все модели данных, REST API и асинхронные фоновые задачи для компании, отслеживающей железнодорожные грузы по Центральной Азии.
Владел всеми тремя фронтендами Vue 3 — CRM для администраторов, панелью отслеживания и Telegram мини-приложением — включая многоязычную поддержку и сквозные тесты.
Интегрировал ИИ-ассистента, чтобы сотрудники могли спрашивать о заказах и запросах на обычном языке — он читает из живой базы данных и отслеживает стоимость на пользователя.
Создал конвейер документов, который разбирает PDF железнодорожных накладных, таблицы и файлы Word в структурированные записи — экономя часы ручного ввода данных на каждую отгрузку.
Архитектура
Две независимые полностековые системы — одна для ERP Центральной Азии, другая для платформы отслеживания — каждая следует одному шаблону: Django REST бэкенд с поддержкой WebSocket в реальном времени, PostgreSQL, Redis и воркер Celery для фоновых задач, всё в Docker Compose. Vue 3 SPA обращаются к своим бэкендам через JWT-аутентификацию, а MinIO обрабатывает хранилище файлов, чтобы документы накладных оставались доступными без раздувания базы данных.
Под капотом
Учёт договоров и актов с автоматическими сигналами завершения: когда все позиции акта заполнены, фоновая задача автоматически помечает его как выполненный — никому не нужно помнить о ручном закрытии. Сигналы Django синхронизируют денормализованные итоги в записи компании без дорогостоящих запросов повторной агрегации.
Полиморфная модель заказа: единая таблица заказов охватывает контейнерные отгрузки, вагонные грузы и возврат пустых вагонов — каждый со своим жизненным циклом статуса отгрузки и оплаты — так что операционная команда работает в одном представлении независимо от типа груза.
Извлечение накладных с помощью ИИ: конвейер документов диспетчеризирует по типу файла — PDF, таблица или Word — извлекает текст в рамках безопасных ограничений размера и передаёт ИИ для создания структурированных записей накладных. Сотрудники перешли от ручного ввода 30+ полей на документ к проверке вывода ИИ и нажатию кнопки подтверждения.
Чему я научился
Охват ERP всегда расширяется — важнейшим инженерным решением было чёткое разделение каждой подсистемы (договора, заказы, финансы), чтобы новые требования не каскадировали повсюду.
Добавление слоя ИИ к обработке документов выявило, что узкое место — не точность извлечения, а качество данных выше по потоку. Мусор на входе — мусор на выходе, даже с хорошими моделями.
Технологии
Фронтенд
- Vue 3
- Vuex 4
- Vue Router 4
- Bootstrap 5
- ApexCharts
- Leaflet
- Playwright
Бэкенд
- Python 3.11
- Django 4.1
- Django REST Framework 3.14
- Daphne/ASGI
- Celery 5.3
- openai-agents
Данные и поиск
- PostgreSQL 14
- Redis 7
- Elasticsearch 7
- MinIO
Инфраструктура и инструменты
- Docker Compose
- Docker Swarm
- GitHub Actions
- ruff
- mypy

