Система поддержки решений дежурного по железнодорожной станции. Камера сама замечает сбой, система оценивает влияние и предлагает варианты перепланирования, ведёт путейцев и ремонтную бригаду до восстановления и собирает отчёт. Решение всегда за человеком.
Живое демо · Презентация · Видео · кейс «Цифровая станция», ALT Хакатон 2026
- Сбой обнаруживает устройство, а не человек. Обычный телефон над стрелкой работает как камера: сам видит изменение в кадре, ИИ проверяет снимок, и на пульте открывается инцидент. Маршруты через стрелку закрываются сразу.
- Весь цикл кейса, а не только перепланирование. Вызов путейцев на пейджер, варианты против исхода «ничего не менять», согласование с ДНЦ, печатный наряд с QR на чеклист, возврат стрелки в работу, отчёт начальнику станции.
- Настоящие роли КТЖ. ДСП, ДСЦС, ДНЦ, начальник станции: у каждого свой экран и свои полномочия. «Работы выполнены» от бригады не открывает движение — это делает дежурный.
- Сеть, а не одна станция. Карта 38 станций с поездами в пути и индексом каждой станции.
Демо: https://alt-hack.vercel.app. Пароль у всех ролей — demo2026.
| Роль | Логин | Что видит |
|---|---|---|
| ДСП — дежурный по станции | dsp@station.demo |
пульт Алматы-1: схема, план путей, индекс, инцидент |
| ДСЦС — станционный диспетчер | dscs@station.demo |
тот же пульт, выбирает вариант перепланирования |
| ДНЦ — поездной диспетчер | dnc@station.demo |
карта своего диспетчерского круга, согласование вариантов |
| ДС — начальник станции | ds@station.demo |
пульт без команд, оперативный отчёт и отчёты по инцидентам |
Сценарий «предмет в стрелке» (5 минут):
- Войдите как ДСП и откройте полевые устройства.
- Откройте камеру С3 на телефоне по QR или прямо на ноутбуке и дайте доступ к камере. Поставьте в рамку стрелки любой предмет — на пульте откроется инцидент.
- На пульте пройдите ход инцидента: вызов путейцев, «нужен ремонт», выбор варианта, согласование, план работ и наряд, возврат стрелки. Кнопка «Далее» отвечает за участников, которых нет рядом.
- Войдите как начальник станции и откройте отчёт по инциденту.
«Сброс» на пульте возвращает станцию в начало сценария.
Телефон-камера ──┐ ┌── Пульт ДСП / ДСЦС
Пейджер путейцев ┤── Next.js (сервер) ──┼── Карта сети ДНЦ
Чеклист по QR ───┘ │ │ └── Отчёты начальника станции
Supabase OpenRouter
(Postgres+RLS) (снимок, план работ)
- Next.js 16, React 19, TypeScript strict, Tailwind CSS 4. Чтение — в серверных компонентах, запись — Server Actions; пульт перечитывает данные раз в 3 с.
- Supabase — Postgres с RLS, миграции в
supabase/migrations. - OpenRouter — vision-модель разбирает снимок камеры, текстовая составляет план работ; у каждой есть запасная.
- Полевые устройства — PWA, открываются по ссылке без входа; права проверяет сервер.
Код разложен по вертикальным срезам: app/ — только роуты, features/{name} —
сценарий целиком, components/ui и lib — общее.
| Требование кейса | Где в продукте | Где в коде |
|---|---|---|
| Показывать состояние станции | пульт: схема, план путей, индекс, лента событий | features/station-console |
| Выявлять проблемы | камера и ИИ, инцидент «подозрение» | features/devices |
| Оценивать влияние | прогноз «ничего не менять», затронутые поезда | features/station-console/forecast.ts |
| Предлагать варианты | варианты А и Б, согласование ДНЦ | features/station-console/options.ts |
| Показывать последствия | сравнение по пяти показателям и индексу | features/station-console/metrics.ts |
| Контролировать выполнение | пейджер, наряд с QR, ход инцидента | features/work-orders |
| Формировать историю | хронология, отчёт по инциденту, PDF | features/incident-report |
| Обзор сети | карта станций и поездов в пути | features/network-map |
Нужны Node.js 20.9+ и проект в Supabase.
npm ci- В SQL Editor проекта выполните по порядку все файлы из
supabase/migrations, затемsupabase/seed.sqlиsupabase/seed-network.sql. Seed создаёт демо-пользователей, станцию Алматы-1 и сеть. - Скопируйте
.env.exampleв.env.localи заполните ключи. npm run dev— приложение на http://localhost:3000.
Проверки — npm run lint (Biome), npm run typecheck, npm run build. Хук
pre-push гоняет все три.
docs/case_solution.md— продуктовые решения: роли, модель станции, индекс, варианты, сценарий демоdocs/hackathon_case.md— исходный кейсdocs/core.md— правила кода, структура и словарь терминовdocs/ui.md— тема и компоненты интерфейсаdocs/git_workflow.md— ветки, коммиты, хуки
Прототип: не заменяет СЦБ и электрическую централизацию. Магистрали, коды и координаты станций реальные, показатели станций кроме Алматы-1 — демонстрационные.