Компания СК Обсудить проект
Транспортная/логистическая компания

CRM для управления автопарком

CRM хранит данные о машинах, водителях, тарифах и рейсах в одном месте. Доступ зависит от роли, а оператор может искать информацию обычными словами.

·

LLM-ассистент отвечает на вопросы об автопарке, а OCR распознаёт транспортные накладные. Важные результаты проверяет сотрудник.
Технологии
Python, FastAPI, SQLAlchemy, JWT, RBAC SvelteKit, TypeScript, TailwindCSS, bits-ui PostgreSQL, Alembic openapi-typescript LLM-ассистент оператора
Обложка проекта «CRM для управления автопарком»

Задача

Данные о машинах, водителях, тарифах и рейсах были разбросаны по разным таблицам. Сотрудникам приходилось сверять их между отделами. Диспетчеру, бухгалтерии и владельцу нужен разный доступ. Заказчик хотел собрать работу с автопарком и рейсами в одной системе, автоматизировать расчёты по заданным правилам и дать оператору поиск обычными словами.

Что разработали

Мы разработали CRM, в которой собраны машины, водители, тарифы и рейсы. Права диспетчера, бухгалтерии и владельца разделены с помощью RBAC. Система сама рассчитывает показатели по рейсам по заданным правилам.

Серверная часть написана на Python и FastAPI, интерфейс — на SvelteKit и TypeScript. JWT используется для аутентификации, TailwindCSS и bits-ui — для компонентов. Данные хранятся в PostgreSQL, изменения структуры базы проводятся через Alembic. openapi-typescript формирует типы для взаимодействия интерфейса с API, а бизнес-правила отделены от пользовательского представления. В CRM также есть LLM-ассистент для запросов обычными словами и OCR-распознавание транспортных накладных.

Как работает

После входа сотрудник видит только то, что разрешено его ролью. Диспетчер работает с машинами, водителями и рейсами. Бухгалтеру доступны тарифы и расчёты в пределах его прав, владельцу — информация для его роли. Изменения сохраняются в общей базе, но каждая роль получает их только в пределах своих прав. Если исходные данные меняются, система пересчитывает связанные показатели по настроенным правилам.

Оператор может задать вопрос обычными словами и получить ответ LLM-ассистента. OCR извлекает данные из транспортных накладных, после чего важные сведения проверяет сотрудник.

Результат

Вместо разрозненных таблиц компания получила общую CRM для работы с машинами, водителями, тарифами и рейсами. Роли ограничивают доступ к разделам и операциям, а расчёты выполняются по настроенным правилам. Оператор ищет сведения обычными словами. Данные из накладных можно распознать через OCR, проверить и использовать в CRM.

Ограничения и зависимости

Расчёты будут верны только при полных исходных данных и правильно настроенных правилах. Права доступа нужно сверять с обязанностями сотрудников. LLM-ассистент и OCR могут ошибаться, поэтому важные данные и решения проверяет человек. Справочники машин, водителей, тарифов и рейсов по-прежнему нужно поддерживать в актуальном состоянии.

Есть похожая задача?

Покажите таблицы с данными об автопарке и расскажите, что должен видеть каждый сотрудник.