59 lines
3.7 KiB
Markdown
59 lines
3.7 KiB
Markdown
# Construction Delivery Control
|
||
|
||
React-приложение для управления доставкой заказов. В текущем контуре есть три внутренние роли и публичная страница клиента: менеджер, логист, водитель и клиент.
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
## Деплой
|
||
|
||
Приложение разворачивается через Docker (`docker-compose.app.yml`). Сборка и запуск:
|
||
|
||
```bash
|
||
docker compose -f docker-compose.app.yml up -d --build
|
||
```
|
||
|
||
### Автодеплой
|
||
|
||
Настроен webhook в Gitea: при пуше в `main` автоматически запускается деплой.
|
||
|
||
- **Webhook listener**: systemd-сервис `supersam-webhook` на порту 9000
|
||
- **Gitea hook**: push в `main` → `POST http://10.0.2.1:9000/webhook/supersam`
|
||
- **deploy.sh**: `git pull origin main` → `docker compose up -d --build`
|
||
- Репозиторий: `https://git.supersamsev.ru/mihail/supersam`
|
||
|
||
## Главный документ
|
||
|
||
- [Обзор системы](docs/product-overview.md) — назначение приложения, роли, сценарии, клиентский flow и подготовка к показу.
|
||
|
||
## Что уже есть
|
||
|
||
- OTP-вход по email через Supabase Auth.
|
||
- Role-based dashboard для менеджера, логиста и водителя.
|
||
- Карточка заказа с составом, комментариями и историей.
|
||
- Публичная страница `/delivery/:token` для выбора даты, половины дня и просмотра состава заказа.
|
||
- **Самовывоз** — вкладки Доставка/Самовывоз на клиентской странице, выбор даты и половины дня самовывоза, информация о бесплатном хранении (2 рабочих дня) и платном (300₽/день).
|
||
- Supabase SQL-схема, таблицы приглашений и Edge Functions для invitation flow.
|
||
- Документация по продукту, архитектуре и сценариям.
|
||
|
||
## Структура
|
||
|
||
- `src/` — интерфейс и клиентская логика.
|
||
- `src/constants/deliveryWorkflow.js` — статусы доставки, включая самовывоз.
|
||
- `src/components/client/DeliverySlotsPicker.jsx` — виджет выбора слотов доставки.
|
||
- `src/components/client/PickupSlotsPicker.jsx` — виджет выбора слотов самовывоза.
|
||
- `src/components/client/DeliveryChoiceFlow.jsx` — флоу согласования доставки/самовывоза.
|
||
- `src/pages/ClientDeliveryPage.jsx` — публичная страница с вкладками Доставка/Самовывоз.
|
||
- `src/components/orders/OrderDetailPanel.jsx` — карточка заказа с управлением доставкой и самовывозом.
|
||
- `supabase/schema.sql` — структура БД, роли, индексы, RLS, триггеры.
|
||
- `supabase/functions/` — Edge Functions для приглашений, статусов и чат-коммуникаций.
|
||
- `supabase/seed/stage-1-demo.sql` — набор seed-данных для показа заказчику.
|
||
- `docs/architecture.md` — архитектура фронтенда и модулей.
|
||
- `docs/product-overview.md` — общий обзор продукта, ролей и сценариев.
|
||
- `docs/scenarios.md` — сценарии жизненного цикла заказа.
|
||
- `docs/n8n-order-group-delivery-flow.md` — потоки n8n для оркестрации доставки.
|