Ниже — **сжатое ТЗ (до ~5000 символов)**, без воды, но достаточно конкретное для старта разработки.
---
## ТЗ: Мобильное приложение для водителей логистической компании (v1.2)
**Платформы:** iOS / Android **Языки:** мультиязычность (RU/EN + расширение) **Авторизация:** SMS-код (OTP) **Рейсы:** 1 адрес → 1 адрес, назначаются диспетчером через TMS **Оплаты:** НЕ входят в scope **Интеграция:** своя TMS через API
### 1) Назначение
Приложение для водителей: получение рейсов, GPS-трекинг, контроль отклонений, работа с документами и POD (доказательство доставки), чат с диспетчером, печать накладной.
---
### 2) Основной функционал
#### 2.1 Смена (рабочее время)
* Водитель вручную включает/выключает: **«Начать смену / Завершить смену»** * Трекинг работает **только во время смены** * Если водитель “под грузом” (статус из TMS), приложение требует активную смену.
Статусы: **В пути → Прибыл → Разгрузка → Доставлено / Отказ/Проблема**
* **«Прибыл» ставится автоматически по геозоне** (фиксируется событие въезда). * «Доставлено» доступно только при выполненном POD.
#### 2.4 GPS-трекинг и контроль
* Отправка координат: **каждую 1 минуту** * Фиксировать: координаты, скорость, остановки, отклонение от маршрута, вход/выход из геозон * Отклонение от маршрута: **> 5 км** → событие + уведомление водителю/диспетчеру (не чаще 1 раза в 5 минут). * Если GPS отключён при “под грузом”: предупреждение + событие, запрос включить GPS (через настройки). * Если нет интернета: запись в локальную очередь, отправка при восстановлении.
#### 2.5 Геозоны
* Геозоны приходят из TMS: координаты + радиус. * События: `GEOFENCE_ENTER/EXIT`, автоматическая установка «Прибыл».
* Загрузка фото из **камеры и галереи** * **Обязательная проверка качества фото** (размытость/читаемость). При провале — просить переснять. * Документы привязываются к рейсу, отображается статус отправки (в очереди/отправлено/ошибка).
* Чат по рейсу (текст/фото) * Шаблоны: «Опаздываю», «Не могу найти точку», «Проблема», «Нужна помощь» * Кнопка звонка диспетчеру * Офлайн: сообщения в очередь.
#### 2.9 Уведомления (push)
* назначен/изменён рейс * сообщение диспетчера * отклонение >5 км * GPS выключен при “под грузом” * требуется POD/документы
#### 2.10 Печать (Bluetooth)
* Подключение к Bluetooth-принтеру * Печать **накладной** (PDF приходит с сервера)
---
### 3) Офлайн-режим
* Все события/статусы/фото/чат сохраняются локально и синхронизируются при сети. * Очередь должна быть устойчивой к перезапуску приложения.
* Вход по SMS * Смена ON/OFF вручную * Рейсы приходят из TMS * Трекинг раз/мин и события отклонений/геозон * «Прибыл» автоматически по геозоне * Документы с проверкой качества * POD: 3 фото + подпись + гео * Чат + push уведомления * Офлайн-очередь + синхронизация * Печать накладной по Bluetooth