ТЗ на модуль Техника
СТРУКТУРА ТЕХНИЧЕСКОГО ЗАДАНИЯ МОДУЛЯ ТЕХНИКА
Оглавление
1. Общие положения
- 1.1. Термины и определения (ссылка на общий глоссарий)
- 1.2. Цель и назначение модуля техника
- 1.3. Описание рабочих процессов техника
- 1.4. Модель предметной области (ссылка на общую модель)
- 1.5. Ролевая модель техника
2. Требования к функциональным блокам модуля техника
2.1. Блок «Управление рабочими сменами»
2.2. Блок «Управление маршрутами»
2.3. Блок «Выполнение заказов»
2.4. Блок «Взаимодействие с клиентами»
2.5. Блок «Мониторинг оборудования»
2.6. Блок «Навигация и геолокация»
2.7. Блок «Отчетность и история»
3. Требования к интерфейсу мобильного приложения
4. Требования к геолокации и автоматизации
5. Требования к безопасности и разграничению доступа
6. Интеграционные требования
СПИСОК ФУНКЦИЙ МОДУЛЯ ТЕХНИКА
2.1. Блок «Управление рабочими сменами»
- UC001: Просмотр расписания рабочих смен
- UC002: Начало рабочей смены
- UC003: Завершение рабочей смены
- UC004: Просмотр информации о текущей смене
- UC005: Просмотр истории рабочих смен
2.2. Блок «Управление маршрутами»
- UC006: Получение и просмотр назначенного маршрута
- UC007: Принятие назначенного маршрута
- UC008: Отклонение маршрута с указанием причины
- UC009: Просмотр детальной информации маршрута
- UC010: Отслеживание прогресса выполнения маршрута
2.3. Блок «Выполнение заказов»
- UC011: Просмотр списка заказов в маршруте
- UC012: Просмотр детальной информации заказа
- UC013: Подтверждение выезда к клиенту ("Выехал")
- UC014: Автоматическая отметка прибытия (по GPS)
- UC015: Начало процесса зарядки с фотофиксацией
- UC016: Мониторинг процесса зарядки в реальном времени
- UC017: Завершение зарядки с фотоотчетом
- UC018: Сообщение о проблемах при выполнении заказа
- UC019: Просмотр истории выполненных заказов
2.4. Блок «Взаимодействие с клиентами»
- UC020: Просмотр контактной информации клиента (без номера телефона)
- UC021: Отправка сообщений в чат с клиентом
- UC022: Получение сообщений от клиента
- UC023: Просмотр истории переписки с клиентом по заказу
2.5. Блок «Мониторинг оборудования»
- UC024: Просмотр статуса сервисного ТС
- UC025: Просмотр статуса зарядной станции
- UC026: Создание заявки на неисправность ТС
- UC027: Создание заявки на неисправность зарядной станции
- UC028: Просмотр истории заявок на неисправности
- UC029: Просмотр технических характеристик оборудования
2.6. Блок «Навигация и геолокация»
- UC030: Автоматическая передача GPS-координат в систему
- UC031: Построение маршрута к адресу заказа
- UC032: Пошаговая навигация к клиенту
- UC033: Автоматическое определение прибытия в геозону заказа
- UC034: Отображение текущего местоположения на карте
2.7. Блок «Отчетность и история»
- UC035: Просмотр статистики выполненных заказов
- UC036: Просмотр статистики рабочего времени
- UC037: Формирование отчета о рабочем дне
- UC038: Просмотр рейтинга и оценок от клиентов
- UC039: Экспорт данных о выполненной работе
Ключевые особенности модуля:
Автоматизация на основе GPS:
- Автоматическое переключение статусов при геособытиях
- Отслеживание маршрута движения техника
- Контроль соблюдения графика выполнения заказов
Фотодокументирование:
- Обязательные фото при начале/завершении зарядки
- Фотоотчеты при сообщении о проблемах
- Привязка фото к конкретным заказам и оборудованию
Коммуникация:
- Защищенный чат с клиентами без раскрытия телефонов
- Автоматические уведомления клиентам о статусе заказа
- Интеграция с системой уведомлений диспетчера
Мониторинг оборудования:
- Получение данных о состоянии МЗС от серверной части
- Система заявок на неисправности с фотофиксацией
- Автоматический журнал операций с оборудованием
Предлагаемые действия техника по статусам
Рабочая смена:
- PLANNED → ACTIVE: "Начать смену" (техник отмечается на работу)
- ACTIVE → COMPLETED: "Завершить смену" (техник завершает рабочий день)
Маршрут:
- ASSIGNED: Техник получает уведомление и может "Принять маршрут" или "Отклонить с причиной"
- ASSIGNED → IN_PROGRESS: "Принять маршрут"
- IN_PROGRESS → COMPLETED: автоматически при завершении всех заказов в маршруте
Заказ:
- ASSIGNED → EN_ROUTE: "Выехал к клиенту" (или автоматически при начале движения)
- EN_ROUTE → ARRIVED: автоматически по GPS при входе в геозону адреса (радиус ~100м)
- ARRIVED → CHARGING: "Начать зарядку" + обязательное фото подключения
- CHARGING → COMPLETED: "Завершить зарядку" + фото отключения и показаний счетчика
- Любой статус → FAILED: "Сообщить о проблеме" + причина + фото
Блок «Управление рабочими сменами» - Модуль Техника
Общее описание блока
Блок предназначен для управления рабочими сменами техниками через мобильное приложение. Обеспечивает полный жизненный цикл работы со сменами: от просмотра расписания до завершения смены с контролем геолокации и времени.
Основные возможности блока:
- Просмотр расписания запланированных смен
- Начало рабочей смены с геолокационным контролем
- Мониторинг текущей активной смены
- Завершение смены с указанием причин досрочного завершения
- Отмена смены с выбором причины
- Просмотр истории выполненных смен
- Получение push-уведомлений о предстоящих сменах
UC001: Просмотр расписания рабочих смен
Актор: Техник
Описание: Техник просматривает свое расписание запланированных рабочих смен на определенный период с возможностью отмены смены.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Открывает раздел 'Мои смены']
A1 --> S1[Система: Загружает смены техника из WorkShifts]
S1 --> S2[Система: Отображает календарь смен<br/>ссылка: ЭкранРасписанияСмен]
S2 --> D1{Техник выбирает действие}
D1 -->|Просмотр деталей| A2[Техник: Нажимает на смену]
D1 -->|Отменить смену| A3[Техник: Нажимает 'Отменить смену']
D1 -->|Изменить период| A4[Техник: Выбирает другой период]
A2 --> S3[Система: Отображает детали смены]
A3 --> S4[Система: Отображает форму отмены смены<br/>ссылка: ФормаОтменыСмены]
A4 --> S5[Система: Загружает смены за выбранный период]
S3 --> S2
S4 --> A5[Техник: Выбирает причину отмены]
S5 --> S2
A5 --> A6[Техник: Опционально вводит комментарий]
A6 --> A7[Техник: Подтверждает отмену]
A7 --> S6[Система: Проверяет возможность отмены]
S6 --> D2{Смену можно отменить?}
D2 -->|Да| S7[Система: Изменяет статус смены на CANCELLED]
D2 -->|Нет| S8[Система: Отображает сообщение об ошибке]
S7 --> S9[Система: Уведомляет диспетчера об отмене]
S8 --> S2
S9 --> S10[Система: Отображает подтверждение отмены]
S10 --> End([Конец])
Модель интерфейсов
classDiagram
class ЭкранРасписанияСмен {
<<Screen>>
+ВыборПериода : DateRangePicker
+КалендарьСмен : CalendarView
+СписокСмен : ListView
+КнопкаОбновить : Button
}
class КарточкаСмены {
<<Area>>
+ДатаСмены : Label
+ВремяНачалаОкончания : Label
+БазаНачала : Label
+БазаОкончания : Label
+СтатусСмены : StatusBadge
+КнопкаОтменить : Button
}
class ФормаОтменыСмены {
<<Screen>>
+ИнформацияОСмене : Area
+ПричинаОтмены : DropDown*
+Комментарий : TextArea[300]
+КнопкаПодтвердить : Button
+КнопкаОтмена : Button
}
ЭкранРасписанияСмен *-- КарточкаСмены
Функциональные требования
RQ001. Требование к отображению расписания. Система должна отображать расписание смен техника в календарном и списочном виде с возможностью переключения между видами отображения.
RQ002. Требование к фильтрации по периоду. Система должна позволять выбор периода отображения: текущая неделя, следующая неделя, текущий месяц, произвольный период.
RQ003. Требование к отображению информации о смене. Каждая смена должна отображать:
- Дату и время смены
- База начала и окончания смены
- Статус смены (Запланирована/Активна/Завершена/Отменена)
- Количество заказов в смене (если есть назначенные маршруты)
RQ004. Требование к возможности отмены. Техник может отменить смену только со статусом PLANNED не позднее чем за 2 часа до ее начала.
RQ005. Требование к причинам отмены. Система должна предоставлять список причин отмены:
- Болезнь
- Семейные обстоятельства
- Технические проблемы с ТС
- Форс-мажор
- Другое (с обязательным комментарием)
RQ006. Требование к уведомлению диспетчера. При отмене смены техником система должна автоматически уведомить ответственного диспетчера с указанием причины и времени отмены.
UC002: Начало рабочей смены
Актор: Техник
Описание: Техник начинает запланированную рабочую смену с проверкой геолокации и временного интервала.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Нажимает 'Начать смену']
A1 --> S1[Система: Проверяет наличие запланированной смены]
S1 --> D1{Есть запланированная смена?}
D1 -->|Нет| S2[Система: Отображает сообщение об отсутствии смены]
D1 -->|Да| S3[Система: Проверяет время начала смены]
S3 --> D2{Время начала смены подошло?}
D2 -->|Нет| S4[Система: Отображает время до начала смены]
D2 -->|Да| S5[Система: Запрашивает текущую геолокацию]
S5 --> S6[Система: Проверяет расстояние до базы начала смены]
S6 --> D3{Техник находится рядом с базой?}
D3 -->|Нет| S7[Система: Отображает сообщение о необходимости<br/>приблизиться к базе]
D3 -->|Да| S8[Система: Отображает подтверждение начала смены<br/>ссылка: ЭкранПодтвержденияНачалаСмены]
S8 --> A2[Техник: Подтверждает начало смены]
A2 --> S9[Система: Изменяет статус смены на ACTIVE]
S9 --> S10[Система: Устанавливает actualStartTime = текущее время]
S10 --> S11[Система: Записывает GPS-координаты начала смены]
S11 --> S12[Система: Отображает экран активной смены]
S12 --> End([Конец])
S2 --> End
S4 --> End
S7 --> End
Модель интерфейсов
classDiagram
class ЭкранПодтвержденияНачалаСмены {
<<Screen>>
+ИнформацияОСмене : Area
+ТекущееВремя : Label
+БазаНачала : Label
+ТекущееМестоположение : Label
+КнопкаНачатьСмену : Button
+КнопкаОтмена : Button
}
class ЭкранАктивнойСмены {
<<Screen>>
+СтатусСмены : StatusIndicator
+ВремяНачала : Label
+ПрошедшееВремя : Timer
+ОставшеесяВремя : Label
+КнопкаЗавершитьСмену : Button
+КнопкаПросмотретьМаршруты : Button
}
Функциональные требования
RQ007. Требование к временному окну начала смены. Техник может начать смену не ранее чем за 15 минут до запланированного времени начала и не позднее чем через 30 минут после запланированного времени.
RQ008. Требование к геолокационному контролю. Система должна проверять, что техник находится в радиусе не более 500 метров от базы начала смены перед разрешением начать смену.
RQ009. Требование к проверке предыдущей смены. Система должна проверить, что предыдущая смена техника завершена (статус COMPLETED или CANCELLED).
RQ010. Требование к автоматическим полям. При начале смены система должна автоматически:
- Установить WorkShifts.status = ACTIVE
- Установить WorkShifts.actualStartTime = текущее время
- Записать GPS-координаты места начала смены
- Создать запись в журнале операций техника
RQ011. Требование к обработке опозданий. Если техник начинает смену с опозданием более 15 минут, система должна зафиксировать опоздание и уведомить диспетчера.
UC003: Завершение рабочей смены
Актор: Техник
Описание: Техник завершает активную рабочую смену с возможностью досрочного завершения и указания причин.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Нажимает 'Завершить смену']
A1 --> S1[Система: Проверяет статус текущей смены]
S1 --> D1{Есть активная смена?}
D1 -->|Нет| S2[Система: Отображает сообщение об отсутствии активной смены]
D1 -->|Да| S3[Система: Проверяет завершенность текущих маршрутов]
S3 --> D2{Есть незавершенные маршруты?}
D2 -->|Да| S4[Система: Отображает предупреждение о незавершенных маршрутах]
D2 -->|Нет| S5[Система: Проверяет время завершения]
S5 --> D3{Досрочное завершение?}
D3 -->|Да| S6[Система: Отображает форму досрочного завершения<br/>ссылка: ФормаДосрочногоЗавершения]
D3 -->|Нет| S7[Система: Отображает стандартную форму завершения<br/>ссылка: ФормаЗавершенияСмены]
S6 --> A2[Техник: Выбирает причину досрочного завершения]
S7 --> A3[Техник: Подтверждает завершение смены]
A2 --> A4[Техник: Опционально добавляет комментарий]
A4 --> A5[Техник: Подтверждает завершение]
A3 --> S8[Система: Запрашивает геолокацию для завершения]
A5 --> S8
S8 --> S9[Система: Проверяет местоположение базы окончания]
S9 --> D4{Техник рядом с базой окончания?}
D4 -->|Нет| S10[Система: Отображает предупреждение о расстоянии]
D4 -->|Да| S11[Система: Изменяет статус смены на COMPLETED]
S11 --> S12[Система: Устанавливает actualEndTime = текущее время]
S12 --> S13[Система: Записывает GPS-координаты завершения]
S13 --> S14[Система: Рассчитывает общее время работы]
S14 --> S15[Система: Отображает итоги смены]
S15 --> End([Конец])
S2 --> End
S4 --> End
S10 --> A6[Техник: Принимает решение]
A6 --> D5{Завершить принудительно?}
D5 -->|Да| S11
D5 -->|Нет| End
Модель интерфейсов
classDiagram
class ФормаЗавершенияСмены {
<<Screen>>
+ИтогиСмены : Area
+ОтработанноеВремя : Label
+КоличествоВыполненныхЗаказов : Label
+ТекущееМестоположение : Label
+БазаОкончания : Label
+КнопкаЗавершить : Button
+КнопкаОтмена : Button
}
class ФормаДосрочногоЗавершения {
<<Screen>>
+ИнформацияОСмене : Area
+ПричинаДосрочногоЗавершения : DropDown*
+Комментарий : TextArea[300]
+КнопкаЗавершить : Button
+КнопкаОтмена : Button
}
class ЭкранИтоговСмены {
<<Screen>>
+ОбщееВремяРаботы : Label
+ВыполненоЗаказов : Label
+СтатистикаДня : Area
+КнопкаПродолжить : Button
}
Функциональные требования
RQ012. Требование к проверке незавершенных маршрутов. Система должна предупреждать техника о незавершенных маршрутах и запрашивать подтверждение завершения смены.
RQ013. Требование к досрочному завершению. Если смена завершается более чем за 30 минут до запланированного времени, система должна запросить причину досрочного завершения:
- Выполнены все задачи
- Технические проблемы с оборудованием
- Проблемы со здоровьем
- Семейные обстоятельства
- Форс-мажор
- Другое (с обязательным комментарием)
RQ014. Требование к геолокационному контролю завершения. Система должна проверять, что техник находится в радиусе 1 км от базы окончания смены, с возможностью принудительного завершения при превышении расстояния.
RQ015. Требование к автоматическим полям при завершении. При завершении смены система должна:
- Установить WorkShifts.status = COMPLETED
- Установить WorkShifts.actualEndTime = текущее время
- Рассчитать WorkShifts.totalWorkedMinutes
- Записать GPS-координаты завершения смены
- Обновить статистику техника
RQ016. Требование к принудительному завершению. Система должна позволить завершение смены вне геозоны базы окончания с обязательным указанием причины и уведомлением диспетчера.
UC004: Просмотр информации о текущей смене
Актор: Техник
Описание: Техник просматривает детальную информацию о текущей активной смене, включая временные метрики и связанные маршруты.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Переходит в раздел 'Текущая смена']
A1 --> S1[Система: Проверяет наличие активной смены]
S1 --> D1{Есть активная смена?}
D1 -->|Нет| S2[Система: Отображает сообщение об отсутствии активной смены]
D1 -->|Да| S3[Система: Загружает данные активной смены]
S3 --> S4[Система: Загружает связанные маршруты]
S4 --> S5[Система: Рассчитывает текущие метрики смены]
S5 --> S6[Система: Отображает информацию о смене<br/>ссылка: ЭкранТекущейСмены]
S6 --> D2{Техник выбирает действие}
D2 -->|Просмотр маршрутов| A2[Техник: Нажимает 'Мои маршруты']
D2 -->|Завершить смену| A3[Техник: Нажимает 'Завершить смену']
D2 -->|Обновить данные| A4[Техник: Выполняет pull-to-refresh]
A2 --> S7[Система: Переход к UC006 (Просмотр маршрутов)]
A3 --> S8[Система: Переход к UC003 (Завершение смены)]
A4 --> S5
S7 --> End([Конец])
S8 --> End
S2 --> End
Модель интерфейсов
classDiagram
class ЭкранТекущейСмены {
<<Screen>>
+СтатусСмены : StatusIndicator
+ВременныеМетрики : ОбластьВременныхМетрик
+ИнформацияОСмене : ОбластьИнформацииОСмене
+ТекущиеМаршруты : ОбластьМаршрутов
+КнопкаЗавершитьСмену : Button
+КнопкаПросмотретьМаршруты : Button
}
class ОбластьВременныхМетрик {
<<Area>>
+ВремяНачала : Label
+ТекущееВремя : LiveTimer
+ОтработанноеВремя : Timer
+ОставшеесяВремя : Label
+ПрогрессБар : ProgressBar
}
class ОбластьИнформацииОСмене {
<<Area>>
+БазаНачала : Label
+БазаОкончания : Label
+ЗапланированноеВремя : Label
+ТекущееМестоположение : LocationView
}
class ОбластьМаршрутов {
<<Area>>
+КоличествоМаршрутов : Label
+ВыполненныеМаршруты : Label
+ТекущийМаршрут : RouteCard
}
ЭкранТекущейСмены *-- ОбластьВременныхМетрик
ЭкранТекущейСмены *-- ОбластьИнформацииОСмене
ЭкранТекущейСмены *-- ОбластьМаршрутов
Функциональные требования
RQ017. Требование к отображению временных метрик. Система должна в реальном времени отображать:
- Время начала смены
- Текущее отработанное время
- Оставшееся время до конца смены
- Прогресс выполнения смены в процентах
RQ018. Требование к отображению информации о смене. Система должна показывать:
- База начала и окончания смены
- Запланированное время начала и окончания
- Текущее местоположение техника
- Статус смены
RQ019. Требование к отображению связанных маршрутов. Система должна показывать:
- Количество назначенных маршрутов на смену
- Количество выполненных маршрутов
- Информацию о текущем активном маршруте
- Прогресс выполнения заказов в маршрутах
RQ020. Требование к обновлению данных. Информация о текущей смене должна обновляться:
- Автоматически каждые 30 секунд
- При выполнении pull-to-refresh пользователем
- При изменении статуса связанных маршрутов или заказов
RQ021. Требование к навигации. С экрана текущей смены должны быть доступны переходы:
- К списку маршрутов смены
- К завершению смены
- К просмотру истории смен
UC005: Просмотр истории рабочих смен
Актор: Техник
Описание: Техник просматривает историю всех своих выполненных рабочих смен с детальной статистикой.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Переходит в раздел 'История смен']
A1 --> S1[Система: Загружает историю смен техника]
S1 --> S2[Система: Отображает список смен с фильтрами<br/>ссылка: ЭкранИсторииСмен]
S2 --> D1{Техник выбирает действие}
D1 -->|Применить фильтр| A2[Техник: Выбирает параметры фильтрации]
D1 -->|Просмотр деталей| A3[Техник: Нажимает на смену]
D1 -->|Экспорт данных| A4[Техник: Нажимает 'Экспорт']
A2 --> S3[Система: Применяет фильтры и обновляет список]
A3 --> S4[Система: Загружает детальную информацию о смене]
A4 --> S5[Система: Формирует и скачивает файл экспорта]
S3 --> S2
S4 --> S6[Система: Отображает детали смены<br/>ссылка: ЭкранДеталейСмены]
S5 --> S2
S6 --> A5[Техник: Просматривает детали]
A5 --> A6[Техник: Нажимает 'Назад']
A6 --> S2
Модель интерфейсов
classDiagram
class ЭкранИсторииСмен {
<<Screen>>
+ПанельФильтров : ОбластьФильтров
+СписокСмен : ListView
+СтатистикаОбщая : ОбластьОбщейСтатистики
+КнопкаЭкспорт : Button
}
class ОбластьФильтров {
<<Area>>
+ПериодДат : DateRangePicker
+СтатусСмены : MultiSelectDropDown
+СортировкаПо : DropDown
+КнопкаПрименить : Button
+КнопкаСброс : Button
}
class КарточкаИсторииСмены {
<<Area>>
+ДатаСмены : Label
+ВремяСмены : Label
+ДлительностьСмены : Label
+КоличествоЗаказов : Label
+СтатусСмены : StatusBadge
+БазыНачалаОкончания : Label
}
class ЭкранДеталейСмены {
<<Screen>>
+ОсновнаяИнформация : Area
+ВременныеМетрики : Area
+СписокМаршрутов : ListView
+СписокЗаказов : ListView
+СтатистикаСмены : Area
}
ЭкранИсторииСмен *-- ОбластьФильтров
ЭкранИсторииСмен *-- КарточкаИсторииСмены
Функциональные требования
RQ022. Требование к отображению истории. Система должна отображать все смены техника со статусами COMPLETED и CANCELLED, отсортированные по дате по убыванию.
RQ023. Требование к фильтрации истории. Система должна предоставлять фильтры:
- По периоду (дата начала и окончания)
- По статусу смены (Завершена/Отменена)
- По длительности смены
- По количеству выполненных заказов
RQ024. Требование к пагинации. Система должна загружать историю смен порциями по 20 записей с возможностью подгрузки следующих порций.
RQ025. Требование к детальной информации о смене. При просмотре деталей смены система должна отображать:
- Основную информацию (даты, времена, базы, статус)
- Фактическое время работы и отклонения от плана
- Список выполненных маршрутов
- Список выполненных заказов
- Статистику эффективности
RQ026. Требование к экспорту данных. Система должна позволять экспорт истории смен в формате CSV с выбором периода и полей для экспорта.
RQ027. Требование к общей статистике. На экране истории должна отображаться сводная статистика:
- Общее количество отработанных смен
- Общее время работы
- Среднее время смены
- Количество выполненных заказов
- Процент вовремя начатых/завершенных смен
Системные требования и интеграции
Требования к push-уведомлениям
RQ028. Требование к уведомлениям о смене. Система должна отправлять push-уведомления технику:
- За 24 часа до начала смены: "Напоминание: завтра у вас запланирована смена с [время] до [время] на базе [название]"
- За 1 час до начала смены: "Напоминание: через час начинается ваша рабочая смена"
- В момент времени начала смены: "Пора начинать рабочую смену! Перейдите в приложение для активации"
RQ029. Требование к настройкам уведомлений. Техник должен иметь возможность настроить:
- Включение/отключение уведомлений о сменах
- Время предварительных уведомлений
- Звуковые сигналы для уведомлений
Требования к геолокации
RQ030. Требование к точности геолокации. Система должна использовать GPS с точностью не менее 10 метров для определения местоположения техника.
RQ031. Требование к геозонам баз. Система должна определять геозоны баз с радиусом:
- 500 метров для начала смены
- 1000 метров для завершения смены
RQ032. Требование к работе в офлайн режиме. При отсутствии интернет-соединения система должна:
- Сохранять GPS-координаты локально
- Позволять начало/завершение смены с последующей синхронизацией
- Уведомлять о работе в офлайн режиме
Требования к безопасности и доступу
RQ033. Требование к аутентификации. Доступ к функциям блока предоставляется только аутентифицированным техникам с активным статусом пользователя.
RQ034. Требование к ограничению доступа. Техник может управлять только своими сменами и не имеет доступа к сменам других техников.
RQ035. Требование к аудиту операций. Все операции техника со сменами должны логироваться с указанием:
- Времени операции
- GPS-координат
- Типа операции
- Результата операции
Требования к интеграции с другими блоками
RQ036. Требование к связи с блоком маршрутов. Система должна интегрироваться с блоком "Управление маршрутами" для:
- Отображения маршрутов, назначенных на смену
- Контроля завершенности маршрутов при завершении смены
- Автоматического начала маршрутов при активации смены
RQ037. Требование к связи с блоком уведомлений. Система должна интегрироваться с сервисом уведомлений для:
- Отправки push-уведомлений о сменах
- Уведомления диспетчеров об отменах и опозданиях
- Системных уведомлений о статусе смен
RQ038. Требование к синхронизации с модулем диспетчера. Изменения статусов смен должны мгновенно отображаться в модуле диспетчера для оперативного мониторинга.
Модель предметной области (Domain Model)
Основные сущности блока
classDiagram
class РабочиеСмены {
+Id : String
+ТехникId : String
+ДатаСмены : Date
+ЗапланированноеВремяНачала : DateTime
+ЗапланированноеВремяОкончания : DateTime
+ФактическоеВремяНачала : DateTime
+ФактическоеВремяОкончания : DateTime
+Статус : СтатусыСмен
+БазаНачала : String
+БазаОкончания : String
+GPS_Начала : Координаты
+GPS_Окончания : Координаты
+ПричинаОтмены : String
+ПричинаДосрочногоЗавершения : String
+Комментарий : String
+ВсегоОтработаноМинут : Number
}
class СтатусыСмен {
<<enumeration>>
PLANNED
ACTIVE
COMPLETED
CANCELLED
}
class ПричиныОтменыСмен {
<<enumeration>>
Болезнь
СемейныеОбстоятельства
ТехническиеПроблемыСТС
ФорсМажор
Другое
}
class ПричиныДосрочногоЗавершения {
<<enumeration>>
ВыполненыВсеЗадачи
ТехническиеПроблемыСОборудованием
ПроблемыСоЗдоровьем
СемейныеОбстоятельства
ФорсМажор
Другое
}
class Техники {
+Id : String
+Фамилия : String
+Имя : String
+Email : String
+Статус : СтатусыТехников
+ТекущаяСмена : РабочиеСмены
}
class УведомленияОСменах {
+Id : String
+ТехникId : String
+СменаId : String
+ТипУведомления : ТипыУведомленийОСменах
+ВремяОтправки : DateTime
+Статус : СтатусыУведомлений
+ТекстСообщения : String
}
class ТипыУведомленийОСменах {
<<enumeration>>
За24Часа
За1Час
ВМоментНачала
ОбОтмене
ОбОпоздании
}
РабочиеСмены --> СтатусыСмен
РабочиеСмены --> ПричиныОтменыСмен
РабочиеСмены --> ПричиныДосрочногоЗавершения
Техники --> РабочиеСмены
УведомленияОСменах --> РабочиеСмены
УведомленияОСменах --> ТипыУведомленийОСменах
Блок «Управление маршрутами» - Модуль Техника
Общее описание блока
Блок «Управление маршрутами» предоставляет технику возможности для работы с назначенными маршрутами в рамках его рабочей смены. Техник может просматривать назначенные маршруты, принимать или отклонять их, отслеживать прогресс выполнения и получать детальную информацию о каждом маршруте.
Основные функции блока:
- Получение уведомлений о назначенных маршрутах
- Принятие или отклонение маршрутов с указанием причин
- Просмотр детальной информации о маршруте и входящих в него заказах
- Отслеживание прогресса выполнения текущего маршрута
- Автоматическое обновление статусов при выполнении заказов
UC006: Получение и просмотр назначенного маршрута
Описание: Техник получает уведомление о назначенном диспетчером маршруте и может просмотреть его основную информацию.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> S1[Система: Получает уведомление о назначении маршрута]
S1 --> S2[Система: Отображает push-уведомление технику]
S2 --> A1[Техник: Открывает уведомление]
A1 --> S3[Система: Отображает краткую информацию о маршруте<br/>ссылка: КарточкаНовогоМаршрута]
S3 --> A2[Техник: Просматривает информацию о маршруте]
A2 --> D1{Действие техника}
D1 -->|Принять| A3[Техник: Нажимает 'Принять маршрут']
D1 -->|Отклонить| A4[Техник: Нажимает 'Отклонить маршрут']
D1 -->|Подробнее| A5[Техник: Нажимает 'Подробная информация']
A3 --> S4[Система: Переход к UC007]
A4 --> S5[Система: Переход к UC008]
A5 --> S6[Система: Переход к UC009]
S4 --> End([Конец])
S5 --> End
S6 --> End
Модель интерфейсов
classDiagram
class КарточкаНовогоМаршрута {
<<Screen>>
+НомерМаршрута : Текст
+СтатусМаршрута : СтатусИндикатор
+ДатаМаршрута : Дата
+ВремяНачалаОкончания : ВременнойИнтервал
+КоличествоЗаказов : Число
+БазаНачалаОкончания : Текст
+КраткоеОписание : Текст
+КнопкаПринять : Кнопка
+КнопкаОтклонить : Кнопка
+КнопкаПодробнее : Кнопка
}
class ПушУведомление {
<<Area>>
+ЗаголовокУведомления : Текст
+ТекстСообщения : Текст
+ВремяПолучения : Время
+КнопкаОткрыть : Кнопка
}
Функциональные требования
RQ040. Требование к получению уведомлений. Система должна отправлять технику push-уведомление при назначении нового маршрута со статусом ASSIGNED.
RQ041. Требование к отображению краткой информации. В карточке нового маршрута должна отображаться:
- Номер маршрута из Routes.routeNumber
- Дата маршрута из Routes.routeDate
- Плановое время начала и окончания
- Количество заказов в маршруте
- База начала и окончания смены
RQ042. Требование к доступности маршрута. Техник может просматривать только маршруты, назначенные конкретно ему (Routes.idTechnician = ID текущего техника).
RQ043. Требование к временным ограничениям. Уведомление о маршруте должно отображаться до тех пор, пока техник не примет решение (принять/отклонить) или пока диспетчер не отменит назначение.
UC007: Принятие назначенного маршрута
Описание: Техник принимает назначенный маршрут, подтверждая готовность к его выполнению.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Нажимает 'Принять маршрут']
A1 --> S1[Система: Отображает форму подтверждения<br/>ссылка: ФормаПринятияМаршрута]
S1 --> S2[Система: Проверяет текущий статус маршрута]
S2 --> D1{Маршрут доступен для принятия?}
D1 -->|Нет| S3[Система: Отображает сообщение о недоступности]
D1 -->|Да| A2[Техник: Подтверждает принятие маршрута]
A2 --> S4[Система: Изменяет статус маршрута на IN_PROGRESS]
S4 --> S5[Система: Устанавливает Routes.actualStartTime]
S5 --> S6[Система: Изменяет статус рабочей смены на ACTIVE]
S6 --> S7[Система: Отправляет уведомление диспетчеру]
S7 --> S8[Система: Отображает подтверждение принятия]
S8 --> S9[Система: Переадресует к текущему маршруту]
S9 --> End([Конец])
S3 --> End
Модель интерфейсов
classDiagram
class ФормаПринятияМаршрута {
<<Screen>>
+ИнформацияОМаршруте : ОбластьИнформации
+ПредупреждениеОВремени : ПредупреждениеБлок
+ТекстПодтверждения : Текст
+КнопкаПодтвердить : Кнопка
+КнопкаОтмена : Кнопка
}
class ОбластьИнформации {
<<Area>>
+НомерМаршрута : Текст
+ДатаМаршрута : Дата
+КоличествоЗаказов : Число
+ПлановоеВремя : ВременнойИнтервал
+АвтомобильСтанция : ИнформацияОборудования
}
Функциональные требования
RQ044. Требование к проверке доступности маршрута. Система должна проверять, что маршрут имеет статус ASSIGNED и назначен текущему технику.
RQ045. Требование к изменению статуса маршрута. При принятии маршрута Система должна:
- Изменить Routes.status на IN_PROGRESS
- Установить Routes.actualStartTime = текущее время
- Обновить Routes.updatedBy = идентификатор техника
RQ046. Требование к активации рабочей смены. Система должна изменить статус связанной рабочей смены (WorkShifts.status) на ACTIVE.
RQ047. Требование к уведомлению диспетчера. При принятии маршрута техником Система должна отправить уведомление назначившему диспетчеру.
RQ048. Требование к блокировке повторного принятия. После принятия маршрута кнопка "Принять" должна стать недоступной для всех других уведомлений этого маршрута.
UC008: Отклонение маршрута с указанием причины
Описание: Техник отклоняет назначенный маршрут с обязательным указанием причины отклонения.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Нажимает 'Отклонить маршрут']
A1 --> S1[Система: Отображает форму отклонения<br/>ссылка: ФормаОтклоненияМаршрута]
S1 --> S2[Система: Загружает список причин отклонения]
S2 --> A2[Техник: Выбирает причину отклонения]
A2 --> D1{Выбрана причина 'Другое'?}
D1 -->|Да| A3[Техник: Вводит текстовый комментарий]
D1 -->|Нет| A4[Техник: Опционально добавляет комментарий]
A3 --> A5[Техник: Нажимает 'Отклонить']
A4 --> A5
A5 --> S3[Система: Валидирует данные]
S3 --> D2{Данные корректны?}
D2 -->|Нет| S4[Система: Отображает ошибки валидации]
D2 -->|Да| S5[Система: Изменяет статус маршрута на CANCELLED]
S5 --> S6[Система: Сохраняет причину отклонения]
S6 --> S7[Система: Освобождает назначенные ресурсы]
S7 --> S8[Система: Отправляет уведомление диспетчеру]
S8 --> S9[Система: Отображает подтверждение отклонения]
S9 --> End([Конец])
S4 --> A2
Модель интерфейсов
classDiagram
class ФормаОтклоненияМаршрута {
<<Screen>>
+ИнформацияОМаршруте : КраткаяИнформация
+СписокПричин : СписокВыбора*
+ПолеКомментария : ТекстовоеПоле[500]
+ПредупреждениеОПоследствиях : ПредупреждениеБлок
+КнопкаОтклонить : Кнопка
+КнопкаОтмена : Кнопка
}
class КраткаяИнформация {
<<Area>>
+НомерМаршрута : Текст
+ДатаВремяМаршрута : ДатаВремя
+КоличествоЗаказов : Число
}
Функциональные требования
RQ049. Требование к обязательному выбору причины. Техник обязан выбрать одну из предопределенных причин отклонения из системного справочника.
RQ050. Требование к списку причин отклонения. Система должна предоставлять следующие причины:
- Болезнь
- Семейные обстоятельства
- Технические проблемы с оборудованием
- Превышение рабочего времени
- Конфликт с другими обязательствами
- Недостаточно времени на подготовку
- Другое (с обязательным комментарием)
RQ051. Требование к обязательному комментарию. При выборе причины "Другое" поле комментария становится обязательным для заполнения (максимум 500 символов).
RQ052. Требование к изменению статуса маршрута. При отклонении маршрута Система должна:
- Изменить Routes.status на CANCELLED
- Сохранить причину отклонения в Routes.cancellationReason
- Сохранить комментарий техника в Routes.notes
- Установить Routes.updatedBy = идентификатор техника
RQ053. Требование к освобождению ресурсов. Система должна освободить назначенные на маршрут ресурсы:
- Изменить WorkShifts.status обратно на PLANNED
- Изменить статус всех заказов в маршруте обратно на CONFIRMED
- Освободить назначенное оборудование (ТС и станция)
RQ054. Требование к уведомлению диспетчера. Система должна немедленно уведомить диспетчера об отклонении маршрута с указанием причины и комментария.
UC009: Просмотр детальной информации маршрута
Описание: Техник просматривает подробную информацию о маршруте, включая список заказов, временную схему и информацию об оборудовании.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Открывает детальную информацию]
A1 --> S1[Система: Загружает полную информацию о маршруте]
S1 --> S2[Система: Загружает список заказов из RoutePoints]
S2 --> S3[Система: Загружает информацию об оборудовании]
S3 --> S4[Система: Отображает детальную информацию<br/>ссылка: ДетальнаяИнформацияМаршрута]
S4 --> A2[Техник: Просматривает информацию]
A2 --> D1{Выбор раздела}
D1 -->|Заказы| A3[Техник: Переключается на вкладку заказов]
D1 -->|Временная схема| A4[Техник: Переключается на временную схему]
D1 -->|Оборудование| A5[Техник: Переключается на информацию об оборудовании]
D1 -->|Карта| A6[Техник: Переключается на карту маршрута]
A3 --> S5[Система: Отображает список заказов]
A4 --> S6[Система: Отображает временную линию]
A5 --> S7[Система: Отображает информацию об оборудовании]
A6 --> S8[Система: Отображает карту с точками маршрута]
S5 --> End([Конец])
S6 --> End
S7 --> End
S8 --> End
Модель интерфейсов
classDiagram
class ДетальнаяИнформацияМаршрута {
<<Screen>>
+ЗаголовокМаршрута : Заголовок
+ОсновнаяИнформация : ОбластьОсновнойИнформации
+ВкладкиИнформации : ВкладкиКомпонент
+КнопкиДействий : ГруппаКнопок
}
class ОбластьОсновнойИнформации {
<<Area>>
+НомерМаршрута : Текст
+СтатусМаршрута : СтатусИндикатор
+ДатаМаршрута : Дата
+ВремяНачалаОкончания : ВременнойИнтервал
+КоличествоЗаказов : Число
+ОценочноеВремяВыполнения : Время
}
class ВкладкаЗаказов {
<<Area>>
+СписокЗаказов : СписокКарточек
+СуммарнаяИнформация : СводкаПоЗаказам
}
class ВкладкаВременнойСхемы {
<<Area>>
+ВременнаяЛиния : ВременнаяЛинияКомпонент
+ЛегендаСтатусов : Легенда
}
class ВкладкаОборудования {
<<Area>>
+ИнформацияАвтомобиля : КарточкаОборудования
+ИнформацияСтанции : КарточкаОборудования
+СтатусКомплекта : СтатусИндикатор
}
class ВкладкаКарты {
<<Area>>
+ИнтерактивнаяКарта : КартаКомпонент
+ЛегендаТочек : Легенда
+ИнформацияОМаршруте : СводкаМаршрута
}
ДетальнаяИнформацияМаршрута *-- ОбластьОсновнойИнформации
ДетальнаяИнформацияМаршрута *-- ВкладкаЗаказов
ДетальнаяИнформацияМаршрута *-- ВкладкаВременнойСхемы
ДетальнаяИнформацияМаршрута *-- ВкладкаОборудования
ДетальнаяИнформацияМаршрута *-- ВкладкаКарты
Функциональные требования
RQ055. Требование к отображению основной информации. Система должна отображать:
- Полную информацию о маршруте из таблицы Routes
- Текущий статус маршрута с цветовой индикацией
- Плановые и фактические времена начала/окончания
- Прогресс выполнения в процентах
RQ056. Требование к отображению заказов. Во вкладке "Заказы" должна отображаться информация:
- Список всех заказов из RoutePoints с порядком выполнения
- Статус каждого заказа
- Адрес и время прибытия к клиенту
- Информация о клиенте (ФИО, тип заказа)
- Требуемый уровень зарядки
RQ057. Требование к временной схеме. Временная линия должна отображать:
- Последовательность выполнения заказов
- Плановые времена прибытия к каждому клиенту
- Время на выполнение каждого заказа
- Время перемещения между точками
- Фактический прогресс выполнения
RQ058. Требование к информации об оборудовании. Система должна отображать:
- Информацию о назначенном сервисном ТС (модель, номер, статус)
- Информацию о зарядной станции (модель, мощность, статус)
- Текущий уровень заряда автомобиля и станции
- Техническое состояние оборудования
RQ059. Требование к отображению карты. Интерактивная карта должна показывать:
- Все точки маршрута с номерами порядка выполнения
- Оптимальные пути между точками
- Текущее местоположение техника (для активных маршрутов)
- Базу начала и окончания маршрута
UC010: Отслеживание прогресса выполнения маршрута
Описание: Техник отслеживает прогресс выполнения текущего активного маршрута, видит статусы заказов и общий прогресс.
Activity-диаграмма (Диаграмма деятельности)
graph TD
Start([Начало]) --> A1[Техник: Открывает текущий маршрут]
A1 --> S1[Система: Проверяет наличие активного маршрута]
S1 --> D1{Есть активный маршрут?}
D1 -->|Нет| S2[Система: Отображает сообщение об отсутствии активного маршрута]
D1 -->|Да| S3[Система: Загружает информацию о текущем маршруте]
S3 --> S4[Система: Загружает статусы всех заказов в маршруте]
S4 --> S5[Система: Рассчитывает общий прогресс выполнения]
S5 --> S6[Система: Отображает панель прогресса<br/>ссылка: ПанельПрогрессаМаршрута]
S6 --> L1[Цикл: Автоматическое обновление данных]
L1 --> S7[Система: Обновляет статусы заказов в реальном времени]
S7 --> S8[Система: Пересчитывает прогресс выполнения]
S8 --> S9[Система: Обновляет временные метрики]
S9 --> D2{Маршрут завершен?}
D2 -->|Нет| D3{Есть изменения в статусах?}
D2 -->|Да| S10[Система: Отображает уведомление о завершении]
D3 -->|Да| S11[Система: Обновляет интерфейс]
D3 -->|Нет| L1
S11 --> L1
S10 --> End([Конец])
S2 --> End
Модель интерфейсов
classDiagram
class ПанельПрогрессаМаршрута {
<<Screen>>
+ЗаголовокТекущегоМаршрута : Заголовок
+ОбщийПрогресс : ПрогрессБар
+ВременныеМетрики : ОбластьВременныхМетрик
+СписокЗаказовСПрогрессом : СписокПрогрессаЗаказов
+КнопкиБыстрыхДействий : ГруппаКнопок
+КнопкаОбновить : Кнопка
}
class ОбластьВременныхМетрик {
<<Area>>
+ВремяНачалаМаршрута : Время
+ТекущееВремя : Время
+ОстатокВремени : Время
+ОтклонениеОтГрафика : ВременнойИндикатор
+ПредполагаемоеВремяЗавершения : Время
}
class КарточкаПрогрессаЗаказа {
<<Area>>
+НомерЗаказа : Текст
+АдресКлиента : Текст
+СтатусЗаказа : СтатусИндикатор
+ПлановоеВремя : Время
+ФактическоеВремя : Время
+ДействияПоЗаказу : ГруппаКнопок
}
ПанельПрогрессаМаршрута *-- ОбластьВременныхМетрик
ПанельПрогрессаМаршрута *-- КарточкаПрогрессаЗаказа
Функциональные требования
RQ060. Требование к расчету общего прогресса. Система должна рассчитывать общий прогресс маршрута по формуле:
Прогресс = (Количество завершенных заказов / Общее количество заказов) × 100%
RQ061. Требование к отображению временных метрик. Система должна отображать:
- Плановое время начала и окончания маршрута
- Фактическое время начала
- Текущее время
- Расчетное время завершения на основе текущего прогресса
- Отклонение от планового графика (с цветовой индикацией)
RQ062. Требование к статусам заказов в прогрессе. Для каждого заказа должна отображаться информация:
- Текущий статус из Orders.status
- Плановое время прибытия из RoutePoints.plannedArrivalTime
- Фактическое время прибытия из Orders.actualArrivalTime (если есть)
- Время выполнения заказа (если завершен)
RQ063. Требование к автоматическому обновлению. Система должна автоматически обновлять информацию о прогрессе каждые 30 секунд при активном маршруте.
RQ064. Требование к быстрым действиям. Панель прогресса должна предоставлять быстрый доступ к:
- Текущему заказу (если есть активный)
- Навигации к следующему клиенту
- Детальной информации о маршруте
- Связи с диспетчером
RQ065. Требование к уведомлениям о завершении. При завершении всех заказов в маршруте Система должна:
- Автоматически изменить статус маршрута на COMPLETED
- Отобразить уведомление технику о завершении маршрута
- Предложить перейти к завершению рабочей смены
Общие требования к блоку «Управление маршрутами»
Требования к интеграции с другими блоками
RQ066. Требование к связи с блоком рабочих смен. Система должна интегрироваться с блоком "Управление рабочими сменами" для:
- Автоматической активации смены при принятии маршрута
- Проверки соответствия времени маршрута времени смены
- Завершения смены при завершении маршрута
RQ067. Требование к связи с блоком выполнения заказов. Система должна интегрироваться с блоком "Выполнение заказов" для:
- Автоматического обновления статусов заказов в маршруте
- Отслеживания прогресса выполнения каждого заказа
- Перехода к выполнению конкретного заказа
RQ068. Требование к связи с блоком навигации. Система должна интегрироваться с блоком "Навигация и геолокация" для:
- Построения оптимального пути между точками маршрута
- Автоматического определения прибытия в точки маршрута
- Отслеживания местоположения техника на маршруте
Требования к уведомлениям
RQ069. Требование к push-уведомлениям. Система должна отправлять push-уведомления технику при:
- Назначении нового маршрута
- Изменении маршрута диспетчером
- Критических задержках в выполнении маршрута
- Сообщениях от диспетчера по маршруту
RQ070. Требование к внутрисистемным уведомлениям. Система должна отправлять уведомления диспетчеру при:
- Принятии маршрута техником
- Отклонении маршрута техником с причиной
- Критических задержках в выполнении маршрута
- Завершении маршрута
Требования к офлайн работе
RQ071. Требование к работе без интернета. При отсутствии интернет-соединения система должна:
- Сохранять информацию о текущем маршруте локально
- Позволять просмотр маршрута и заказов в офлайн режиме
- Сохранять изменения статусов локально с последующей синхронизацией
- Уведомлять техника о работе в офлайн режиме
RQ072. Требование к синхронизации данных. При восстановлении интернет-соединения система должна:
- Автоматически синхронизировать все изменения статусов
- Получить актуальную информацию о маршруте с сервера
- Разрешить конфликты данных в пользу серверной версии
- Уведомить техника об успешной синхронизации
Требования к безопасности и доступу
RQ073. Требование к аутентификации. Доступ к функциям блока предоставляется только аутентифицированным техникам с активным статусом пользователя.
RQ074. Требование к ограничению доступа. Техник может просматривать и управлять только маршрутами, назначенными конкретно ему.
RQ075. Требование к аудиту операций. Все действия техника с маршрутами должны логироваться с указанием:
- Времени операции
- GPS-координат (если доступны)
- Типа операции (принятие, отклонение, просмотр)
- Результата операции
Требования к производительности
RQ076. Требование к времени отклика. Загрузка информации о маршруте должна выполняться не более чем за 3 секунды при стабильном интернет-соединении.
RQ077. Требование к обновлению данных. Автоматическое обновление статусов и прогресса должно выполняться не более чем за 1 секунду.
RQ078. Требование к размеру кеша. Система должна кешировать информацию о текущем маршруте локально, занимая не более 50 МБ памяти устройства.
Интеграционные требования
Требования к взаимодействию с серверной частью
RQ079. Требование к API маршрутов. Мобильное приложение должно использовать следующие API endpoints:
- GET /api/technician/routes - получение списка маршрутов техника
- POST /api/technician/routes/{id}/accept - принятие маршрута
- POST /api/technician/routes/{id}/reject - отклонение маршрута
- GET /api/technician/routes/{id}/details - детальная информация о маршруте
- GET /api/technician/routes/{id}/progress - прогресс выполнения маршрута
RQ080. Требование к WebSocket соединению. Для получения обновлений в реальном времени должно использоваться WebSocket соединение с событиями:
- route_assigned - назначение нового маршрута
- route_updated - изменение маршрута
- order_status_changed - изменение статуса заказа в маршруте
- route_cancelled - отмена маршрута диспетчером
Требования к обработке ошибок
RQ081. Требование к обработке сетевых ошибок. При сетевых ошибках система должна:
- Отображать понятные пользователю сообщения об ошибках
- Предлагать повторить операцию
- Переходить в офлайн режим при длительном отсутствии соединения
RQ082. Требование к обработке ошибок сервера. При ошибках сервера система должна:
- Логировать детальную информацию об ошибке
- Отображать технику общее сообщение о технической проблеме
- Предоставлять возможность связаться с технической поддержкой
Требования к интерфейсу мобильного приложения
Требования к удобству использования
RQ083. Требование к интуитивности интерфейса. Интерфейс блока должен быть интуитивно понятным для техников с различным уровнем технической грамотности.
RQ084. Требование к размеру элементов управления. Все кнопки и элементы управления должны иметь размер не менее 44x44 пикселей для удобного использования на мобильных устройствах.
RQ085. Требование к цветовой схеме. Система должна использовать единую цветовую схему для статусов:
- Зеленый - завершено/активно
- Желтый - в процессе/ожидание
- Красный - отменено/ошибка
- Серый - неактивно/недоступно
Требования к адаптивности
RQ086. Требование к поддержке ориентации. Интерфейс должен корректно отображаться как в портретной, так и в ландшафтной ориентации экрана.
RQ087. Требование к поддержке различных размеров экранов. Интерфейс должен адаптироваться под различные размеры экранов мобильных устройств (от 5 до 7 дюймов).
RQ088. Требование к доступности. Интерфейс должен соответствовать стандартам доступности для пользователей с ограниченными возможностями, включая поддержку screen readers.