Jaloliddin Musayev
К проектам
В продакшене2025 — 2026Логистика и дистрибуция

Система управления складом (WMS)

Полный складской цикл от приёмки до отгрузки для крупного FMCG-дистрибьютора — четыре клиентских приложения и живая синхронизация с внешней ERP.

1 295
коммитов
820
файлов кода
4
клиентских приложения
3
языка

Проблема

Склад вёлся на бумажных листах и в Excel. Остатки не были видны в реальном времени, товар с истекающим сроком смешивался с обычным, ошибка сборки всплывала только после жалобы клиента. Заказы из ERP компании переносились на склад вручную — постоянный источник задержек и расхождений.

Решение

Свёл всю цепочку от приёмки до отгрузки в одну систему. Товар принимается с партией и сроком годности, при сборке по FEFO автоматически предлагается партия с ближайшим сроком, сборщик сканирует штрихкод в приложении на телефоне. Обмен с ERP компании вынесен в отдельный воркер — заказы, товары и остатки синхронизируются автоматически, при ошибке идёт повтор.

Ключевые возможности

  • FEFO: партия с ближайшим сроком выбирается автоматически, просроченный товар блокируется на приёмке
  • Wave picking — заказы группируются в волны, маршрут по складу сокращается
  • Офлайн-очередь: при потере связи приложение продолжает работать, действия уходят по порядку после восстановления
  • Контроль сессий «один профиль — одно устройство» и аудит-лог каждого действия
  • Роли: администратор, контролёр и сборщик — у каждого свой интерфейс и права
  • Двусторонняя интеграция с внешней ERP: синхронизация заказов, товаров и остатков в фоновом воркере
  • Четыре клиента: React PWA админка, Android-приложение на React Native, Capacitor PWA и десктоп на Tauri
  • Push-уведомления через FCM и интерфейс на трёх языках (узбекский, русский, английский)
  • Нагрузочное тестирование Locust — проверено в условиях реальной складской смены

Архитектура

Один API на FastAPI обслуживает четыре клиента. Обмен с внешней ERP вынесен в отдельный от API воркер — поэтому даже при замедлении интеграции склад продолжает работать.

Клиенты

Сканер, офлайн-очередь, push

React PWA adminReact Native (Android)Capacitor PWATauri desktop

Слой API

REST, контроль сессий

FastAPIJWT auth + RBACAudit logi18n

Доменные сервисы

ReceivingFEFO allocationWave pickingStock & inventory

Данные и фоновые процессы

Очередь, повторы, восстановление

PostgreSQLAlembic migrationsERP sync worker

Технологии

Backend

PythonFastAPISQLAlchemyAlembicPostgreSQLPydanticJWT

Веб

React 19TypeScriptVite 7Tailwind CSSReact Router 7i18next

Мобильные

React NativeVision CameraCapacitorML Kit / ZXingTauriFCM

Инфраструктура

nginxsystemdBackground workerLocust

Моя роль

Единственный разработчик: архитектура, backend, веб-админка, мобильные приложения, интеграция с ERP, деплой и нагрузочное тестирование.

Имена клиентов, домены и адреса серверов не раскрываются из соображений конфиденциальности.