SmartTransport
Рабочее место диспетчера: авария на линии, подбор замены с ценой каждого решения и назначение — в два нажатия.
Открыть живой прототип smarttransport.foxdim.ruSmartTransport — рабочее место диспетчера городского пассажирского транспорта. В демо-данных прототипа семь маршрутов и 37 автобусов, из них 32 на линии и 4 в резерве. Задача интерфейса — удержать эту картину в голове диспетчера и в нужный момент выделить из неё одно: что сломалось, где и кем закрыть рейс.
Почему за это взялись
Работа диспетчера — это долгое наблюдение, прерываемое минутами, в которые нужно принять решение. Поломка автобуса — главное из таких событий: интервал на маршруте растёт, на остановках копятся пассажиры, а информация о происшедшем разбросана между рацией, таблицами выпуска и телефонными звонками в депо. Я проектировал продукт вокруг этого момента: всё, что не помогает решить за минуты, уходит на второй уровень, а всё, что помогает, собрано на одном экране.
Что мешало — и что изменили
Что мешало
- Об аварии диспетчер узнаёт по рации — без координат, телеметрии и оценки последствий.
- Замену ищут по таблицам выпуска и звонкам в депо, время подъезда считают в уме.
- Цена решения скрыта: свободный борт может оказаться занят на другом маршруте или стоять в депо.
- После назначения нет обратной связи: дошла ли команда водителю, едет ли борт, вызвана ли техпомощь, оповещены ли пассажиры.
Что изменили
- Авария — единственный громкий элемент: баннер с таймером, борт и его маршрут подсвечены на карте, остальная сеть приглушена.
- Панель замены собирает кандидатов и сортирует их по времени подъезда и доступности; лучший отмечен «Рекомендуем», пути подъезда нарисованы на карте.
- Цена решения видна до решения: интервал, остановки под угрозой, число ожидающих пассажиров.
- Назначение запускает сопутствующие действия и показывает ход их выполнения; в течение 10 секунд его можно отменить.
Как я работал
- 01
Один главный сценарий
Выделил аварию как сценарий, ради которого существует продукт, и разложил путь от сигнала до назначения на шаги. Структура интерфейса подчинена этому пути.
- 02
Карта как дом, пять разделов
Карта — главный экран, остальное в левой колонке: маршруты, подвижной состав, инциденты, аналитика. Бейдж на логотипе и счётчик инцидентов сообщают об аварии из любого раздела.
- 03
«Список + деталь» везде
Маршруты, подвижной состав и инциденты устроены одинаково: слева реестр с поиском и фильтрами-счётчиками, справа карточка выбранного объекта и действие. Раз выучив один раздел, диспетчер знает остальные.
- 04
Единый язык статусов
Цвет статуса — «по графику», опоздание, более 5 минут, авария и контур для резерва — одинаков на маркерах карты, в чипах, в полосах регулярности и в легенде со счётчиками.
Экраны, которые двигают работу
Авария на линии
Сверху баннер: «Борт 1047 сломался на линии», маршрут, таймер с начала события и последствие — интервал 10 → 20 мин. Сломанный борт и его маршрут подсвечены красным, остальная сеть приглушена. Справа событие встаёт наверх ленты смены с действиями «Показать» и «Решить».
- Причина: кнопка водителя и телеметрия — без звонка по рации
- Таймер с начала события и «Решить» с клавиатуры, Enter
- Внизу сводка смены: на линии 32 из 33, регулярность, опоздания, аварии, резерв
Кем заменить — и чего это будет стоить
Панель замены открывается поверх ленты, карта остаётся на месте. Сверху сломанный борт: где, когда, пассажиров в салоне. Ниже кандидаты, отсортированные по времени подъезда и доступности: рекомендованный борт выделен, у остальных статус — «Занят на М20», «В депо», «Перерыв». Пути подъезда с ETA нарисованы на карте. В нижней части — три сопутствующих действия галочками (техпомощь, подбор пассажиров, оповещение) и блок «Влияние на маршрут»: интервал 10 → 20 мин, 4 остановки под угрозой, ≈ 62 человека ждут сейчас.
- Недоступный кандидат остаётся в списке, но приглушён — видно, почему он не подходит
- Предупреждение у борта в депо — до выбора, а не после
- «Назначить на маршрут» отвечает на Enter, «Отмена» рядом
Назначение и ход исполнения
После нажатия панель превращается в ленту выполнения: «Борт 2210 назначен на маршрут 10». Три плашки — время реакции 05:46, прибытие 14:03, интервал 20 → 10. Ниже шаги: команда ушла на бортовой терминал, ждём подтверждения водителя, борт следует к месту поломки (0,8 км, осталось 02:22), техпомощь вызвана, пассажиры оповещены — табло на 4 остановках и приложение.
- Назначение можно отменить в течение 10 секунд — кнопка «Отменить · 9 с»
- Сводка внизу карты обновляется сразу: аварий 0, резерв 3
- Каждый шаг со своим состоянием: выполнено, ожидание, в пути
Карта: слои, статусы, фильтры
В спокойном режиме карта работает как рабочий стол. Слои «Остановки» и «Резерв», выпадающая легенда «Статус ТС» со счётчиками (по графику 30, опоздание 2–5 мин — 2, более 5 мин — 1, резерв 3), переключатель «Схема / Карта», поиск по борту, маршруту и остановке, который вызывается клавишей «/». Выбранный маршрут становится фильтром-чипом и подсвечивается; справа вкладка «Маршруты» показывает регулярность каждого полосой.
- Легенда одновременно объясняет цвета и служит фильтром
- Вкладки «События» и «Маршруты» делят правую колонку без перехода на другой экран
- Подпись под лентой: «Телеметрия: обновление каждую секунду»
Маршруты и расписания
Реестр из семи маршрутов с поиском и фильтром «Все 7 / С отклонениями 4». В строке — номер, название, сколько ТС вышло, интервал, время работы, статус и регулярность. Справа карточка выбранного маршрута: ТС на линии, интервал против плана (22 мин, план 22), регулярность, длина и оборот, первый и последний рейс, конечные, остановки и список автобусов с отклонением от графика.
- Красный номер маршрута — на нём авария, виден в списке
- Отклонение каждого автобуса — цветным чипом: +7:12 оранжевым, +0:58 и −0:42 зелёным
- «Показать на карте» — переход к маршруту в один клик
Подвижной состав
37 автобусов: 32 на линии, 4 в резерве. Фильтры-счётчики «Все / На линии / Резерв / Неисправны», поиск по борту, госномеру, водителю или маршруту. В строке — борт, маршрут и направление, модель, госномер, водитель и статус с отклонением от графика. Карточка борта: водитель, модель, вместимость, наполненность салона, топливо с полосой, пробег за смену и остаток до ТО.
- Номера бортов моноширинным шрифтом — читаются в столбик
- Кнопка «Показать на карте» — тот же переход, что и в маршрутах
Инциденты
Журнал смены: за смену 5 инцидентов, 2 открыто. Фильтры «Все / Открытые / Решённые», тип события — поломка, ДТП, оборудование, затор — и время. Открытый инцидент подсвечен, у решённых зелёная точка, у наблюдаемых жёлтая. В карточке справа: тип, номер, время реакции, решение и хронология — «Кнопка водителя + телеметрия: перегрев двигателя, t° ОЖ 118 °C» — с теми же кнопками «Показать» и «Решить».
- Тот же паттерн «список + деталь», что и в остальных разделах
- Решение можно принять и из журнала, не возвращаясь к карте
Аналитика смены
Раздел для старшего диспетчера и разбора смены: «Текущая смена / Вчера / Неделя». График регулярности за 12 часов с пунктиром нормы 92 %, опоздания по маршрутам с сортировкой по убыванию, инциденты и реакция (5 инцидентов, среднее время реакции 1:19, среднее время замены 12 мин) с разбивкой по типам и выход на линию — план 33, на линии 32, резерв свободен 1 из 4 — по каждому маршруту полосой «план и факт».
- Норма на графике — линия, а не отдельная цифра: видно, когда смена её пересекла
- Штриховка в полосе выхода на линию — недостающий борт
Итог в цифрах
- Весь путь аварии — от сигнала до назначения замены и оповещения пассажиров — проходит в одном продукте и почти без переключения контекста.
- Решение принимается с открытыми глазами: интервал, остановки под угрозой и ожидающие пассажиры видны до нажатия кнопки.
- Единые паттерны — «список + деталь», статусы, действия — позволяют освоить остальные разделы, выучив один.