Trenova: управляемая ИИ система управления транспортом для автоперевозчиков
Trenova — это управляемая ИИ система управления транспортом (TMS) для автоперевозчиков, разработанная на Go с использованием PostgreSQL, GraphQL и React.
Проект предназначен для решения задач диспетчеризации, расчетов тарифов, выставления счетов и других аспектов бухгалтерии, включая автоматизацию документов и соблюдение FMCSA. Trenova отличается от других решений тем, что акцент делает на малые и средние автоперевозчики, что может быть полезно для компаний, стремящихся оптимизировать свои процессы без необходимости в дорогих интеграциях.
Есть явное ограничение — Trenova находится на стадии активной разработки, и её использование в производственной среде не рекомендуется. Если интересует такая система, можно попробовать развернуть на локальном сервере, но готовься к возможным багам. Установка должна быть простой, но точные шаги можно найти в документации репозитория.
Trenova — это система управления транспортировкой (TMS), разработанная для небольших и средних автоперевозчиков в США. Платформы TMS для крупных предприятий часто стоят более 50 000 долларов в год, что недоступно для большинства перевозчиков. Trenova предлагает решение с фиксированной ценой и возможностью саморазвертывания, охватывающее весь процесс от заказа до получения денег: ввод отправлений, диспетчеризация, назначение водителей, расчет цен, выставление счетов, учет и соблюдение норм.
Исходный код доступен под лицензией Fair Source, что позволяет перевозчикам и интеграторам просматривать код, проводить аудит и запускать его на своей инфраструктуре.
Основные возможности
- Диспетчеризация и планирование: управление жизненным циклом отправлений, последовательность остановок, назначение водителей и оборудования, управление исключениями.
- Расчет и дополнительные услуги: расчет цен по формуле, топливные надбавки, правила по задержкам и дополнительным услугам.
- Выставление счетов: проверки готовности к выставлению счетов, генерация счетов, корректировки и применение платежей.
- Учет: общий план счетов, рабочие процедуры закрытия и расчеты с водителями.
- Автоматизация документов: генерация BOL, POD, подтверждений тарифов, счетов и извлечение данных из квитанций с помощью шаблонов.
- Соблюдение норм: учет документов для FMCSA, отслеживание сертификации водителей и ведение протоколов аудита.
- EDI и интеграции: рабочие процессы с партнерами для EDI 204 / 210 / 214 / 990 / 997, телематика (Samsara), PC*MILER, AS2.
- Поиск в реальном времени: поиск на основе Meilisearch и обновления в реальном времени с использованием Redis.
- Идентификация и доступ: вход через OIDC, разрешения на основе ролей и аренда на уровне организаций.
Технологический стек
Проект использует следующие технологии:
- API: Go 1.26, Gin, GraphQL (gqlgen)
- База данных: PostgreSQL с использованием pgx, миграции SQL
- Поиск и кэш: Meilisearch, Redis
- Изменение данных: GTC — коннектор логической репликации PostgreSQL
- Клиентская часть: React, TypeScript, Vite, GraphQL
- Документы: Gotenberg (PDF), MinIO / совместимое с S3 хранилище объектов
- Развертывание: Docker-образы в GitHub Container Registry, Caddy, Docker Compose
Установка и запуск
Чтобы начать работу с Trenova, тебе понадобятся:
- Go 1.26+
- Node.js с pnpm
- Docker
- [Task](https://taskfile.dev/)
Сначала клонируй репозиторий и настрой окружение:
git clone https://github.com/emoss08/trenova.git
cd trenova
cp .env.example .env
Затем запусти необходимые сервисы и саму систему:
docker compose -f docker-compose-local.yml up -d
task tms:run
cd client && pnpm install && pnpm dev
Ограничения
На данный момент Trenova находится на стадии предварительного релиза и активно разрабатывается. Программное обеспечение пока не готово для использования в производственной среде. Чтобы быть в курсе обновлений, следи за выпусками или присоединяйся к ожиданию на сайте проекта. Кроме того, внешние кодовые вклады не принимаются, чтобы сохранить целостность архитектуры и дорожной карты. Однако ты можешь сообщать о находках и предлагать функции через GitHub Issues или Discord.
Открыть на GitHub: emoss08/Trenova →
RepoRadar