← к кейсам

CRM-система для логистической компании

2024
Laravel PostgreSQL Vue Docker

Задача

Логистическая компания управляла заявками через Excel и мессенджеры: диспетчеры вручную распределяли заказы по водителям, отслеживали статусы в таблицах, передавали документы через WhatsApp. При росте объёма — 200+ заявок в день — система перестала работать: терялись заявки, дублировались маршруты, менеджеры не видели реальную картину.

Задача: спроектировать и построить веб-CRM, которая закроет всё это изнутри.

Что было сделано

Спроектировал схему данных: заявки, маршруты, водители, транспорт, точки доставки. PostgreSQL с партиционированием таблицы заявок по дате — объём предполагался большой.

На Laravel реализовал REST API для фронтенда и мобильного приложения водителей. На Vue — интерфейс диспетчера с реалтайм-обновлением статусов через WebSockets (Laravel Echo + Pusher-совместимый сервер).

Интеграция с 2ГИС для геокодирования адресов доставки и построения маршрутов. Экспорт накладных в PDF через wkhtmltopdf.

Деплой на VPS через Docker Compose: nginx, php-fpm, PostgreSQL, Redis, воркеры очередей.

Результат

Время обработки одной заявки сократилось с ~8 минут до ~40 секунд. Ноль потерянных заявок за первые три месяца эксплуатации. Диспетчеры перестали работать в двух окнах одновременно — всё в одном интерфейсе.

Стек подробнее

  • Laravel 11 — основной бэкенд, очереди, события
  • PostgreSQL 16 — хранение данных, партиционирование
  • Vue 3 + Pinia — SPA интерфейс диспетчера
  • Redis — кеш, очереди, pub/sub для WebSockets
  • Docker Compose — локальная разработка и прод-деплой идентичны