Skip to content

tr00x/suw

Repository files navigation

Water Delivery System (WDS) / SUW

Система управления доставкой 19-литровой воды с контролем курьеров, антифрод-проверкой и интеграцией с телематикой.

Проблемы, которые решает система

  • Антиобман: курьеры не могут "рисовать" доставки — сервер проверяет GPS машины.
  • Контроль тары: понятно, кто сколько бутылей должен.
  • Контроль денег: сверка кассы по сменам.
  • SLA: видно просроченные заказы (>2 часов).
  • Управляемость: отчёты, логи, карта треков.

Архитектура

Проект построен как монорепозиторий (Monorepo).

┌─────────────────────────────────────────────────────────────────┐
│                         CLIENTS                                  │
├─────────────────┬─────────────────┬─────────────────────────────┤
│   Web Admin     │   Courier PWA   │     Integrations            │
│  (React/Vite)   │  (React/PWA)    │   (Intake, Telematics)      │
└────────┬────────┴────────┬────────┴──────────────┬──────────────┘
         │                 │                       │
         ▼                 ▼                       ▼
┌─────────────────────────────────────────────────────────────────┐
│                      API (NestJS)                                │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐   │
│  │   Auth   │ │  Orders  │ │  Shifts  │ │  Delivery Proof  │   │
│  │   RBAC   │ │ Customers│ │ Vehicles │ │   (Anti-fraud)   │   │
│  └──────────┘ └──────────┘ └──────────┘ └──────────────────┘   │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
┌─────────────────────────────────────────────────────────────────┐
│                       SQLite + Prisma                           │
└─────────────────────────────────────────────────────────────────┘

Роли пользователей

Роль Описание Ключевые функции
ADMIN Полный доступ Настройки, пользователи, отчёты
OPERATOR Работа с заказами Создание заказов, назначение курьеров
WAREHOUSE Склад Открытие/закрытие смен, приём тары/денег
COURIER Курьер PWA: список заказов, доставка, proof
MANAGER Менеджер Отчёты, аналитика (read-only)

Технологический стек

Backend

  • Node.js + NestJS — API framework
  • Prisma — ORM
  • SQLite — база данных (локальный файл dev.db)
  • JWT — авторизация

Frontend (Web Admin)

  • React + Vite — сборка
  • Tailwind + shadcn/ui — UI
  • TanStack Query — data fetching
  • Leaflet — карты (OSM)

Courier PWA

  • React + Vite — сборка
  • Workbox — service worker
  • IndexedDB — offline storage

Быстрый старт

1. Установка зависимостей

В корне проекта:

npm install

2. Настройка базы данных

Инициализация SQLite и заливка тестовых данных:

# Применить миграции
npm run db:migrate

# Сгенерировать Prisma Client
npm run db:generate

# Залить сид-данные (пользователи, товары и т.д.)
npm run db:seed

3. Запуск приложений

Можно запускать приложения в разных терминалах:

API (Backend)

npm run api:dev
# Запустится на http://localhost:3000
# Swagger документация: http://localhost:3000/docs

Web Admin (Панель администратора)

npm run web:dev
# Запустится на http://localhost:5173

Courier PWA (Приложение курьера)

npm run pwa:dev
# Запустится на http://localhost:5174

Тестовые учётные записи

Роль Телефон Пароль
Admin +99361000001 Tm123456
Operator +99361000002 Tm123456
Warehouse +99361000003 Tm123456
Courier 1 +99361000010 Tm123456
Courier 2 +99361000011 Tm123456

Структура проекта

  • apps/api — Бэкенд на NestJS
  • apps/web-admin — Админка для диспетчеров и операторов
  • apps/courier-pwa — Мобильное веб-приложение для водителей

About

Water delivery management system — courier anti-fraud via GPS, shift control, container accounting, SLA tracking. NestJS · React · PWA

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages