🗺 Roadmap проекта Архыз.CLUB¶
Дата: 30.04.2026 · Статус: Phase 4 завершена на ~80%
📊 Что готово сегодня¶
Mobile (tourist-app)¶
- ✅ 100+ экранов в едином дизайне (Tabler-иконки, brand-токены, AI-ромб)
- ✅ 18+ экранов с DEMO-fallback
- ✅ CJM навигация (10 сценариев)
- ✅ React Query retry/backoff + Skeleton + ErrorBoundary
- ✅ TopBar safe-area, единый TabBar
- ✅ Capacitor pipeline (config готов, push integration)
- ✅ analytics auto-track screens
- ✅ platform.config().rescue_phone (управляется централизованно)
Backend (8 микросервисов v0.2.0)¶
- ✅ auth-svc · phone OTP, JWT, profile
- ✅ booking-svc · 12 endpoints (bookings + payments + methods)
- ✅ catalog-svc · hotels/tours/restaurants/transfers/instructors
- ✅ resort-svc · lifts/snow/weather/badges/leaderboard/tracking/skipass
- ✅ chat-svc · 7 endpoints + pub-sub
- ✅ rtc-svc · WebSocket realtime:* каналы
- ✅ analytics-svc · events + metrics + funnels
- ✅ platform-svc · config + flags + push
Admin (src/, не в tourist-app)¶
- ✅ src/pages/admin/ski/ · 4 экрана (Hub, Lifts, DataView, LazyView)
- ✅ src/pages/tourist/ · 5 веб-зеркал tourist-фич
- ⚠️ Старая админка из монолита (часть фич)
- ❌ Нет dashboard для новых сущностей (badges, leaderboard, ski-stories, friends-live, recommendations, targets, etc.)
🎯 Phase 5 · Заполнение БД demo-данными¶
Цель: Когда мобильное приложение запрашивает API без user_id (превью, гость) — видеть реальный контент, не demo-fallback. Нужны seed-скрипты.
Sprint 5.1 — Catalog seed (~0.5 дня)¶
Seed уже частично сделан. Дополнить:
- 5+ инструкторов в instructors таблице (уже есть, но нужны фото и full bio)
- 8+ туров в tours (Софийские озёра, Аманауз, Пхия, Кяфар, Конная, Джип, Снегоступы, Зимний фрирайд)
- 6+ ресторанов (Чайный дом, Кавказская кухня, Кафе у канатки, Glamping bar, Терраса)
- 4+ трансферные компании (Кавказ-трансфер, ВИП-трансфер, Эконом, Минивэн)
- 15+ отелей уже есть, добавить только room_types + amenities
Sprint 5.2 — Resort seed (~0.5 дня) — для resort-svc¶
Сидим в Postgres + Redis cache:
- Lifts: KU-1..KU-7, бугели, конвейеры (есть в DEMO LiftsScreen — перенести в Postgres lifts таблицу)
- Slopes: ~25 трасс с координатами, цветом, side, status
- Webcams: 15 камер (уже есть в lib/webcams.ts, нужен seed_webcams.sql)
- Snow report: текущая толщина снега, глубина, последний снегопад
- Recommendations: маппинг slopes → user_level (для /recommendations)
- Badges: 12 достижений (id, title, criteria, threshold, icon)
- Targets template: 4 daily targets (10 спусков, 15 км, 2 км вертикали, запись дня)
Sprint 5.3 — Booking + Chat seed (~0.5 дня) — для new svc¶
- Demo bookings: 6 броней разных типов (Шале Аура, Софийские озёра, Чайный дом, Mercedes Vito, Артём, Пик Резорт) на demo-юзера
u1 - Demo payments: 9 транзакций
- Demo chats: 6 диалогов (Шале Аура, Артём-инструктор, туры, ресторан, трансфер, поддержка)
- Demo messages: по 3-5 сообщений в каждом тред
- Push devices: web-token зарегистрировать для
u1 - Push prefs: defaults
Sprint 5.4 — Skripт (~0.5 дня)¶
services/_seed/seed_all.py — единый скрипт:
1. Читает seed_data/*.json (туры, отели, инструкторы, etc.)
2. Идёт в каждый сервис через REST с X-Admin-Token
3. Создаёт через native endpoints (POST /bookings/create, POST /chats/start, etc.)
4. Делает idempotent (skip если ID уже есть)
Запуск: python services/_seed/seed_all.py --reset (с --reset очищает Redis db перед сидом)
🎯 Phase 6 · Доработка АДМИН-панели по новым мобильным фичам¶
Цель: Для каждой роли провайдера + админ — экраны управления тем, что мобильный юзер использует.
Роль 1 · АДМИН платформы (src/pages/admin/)¶
| Что добавить | Endpoint |
|---|---|
| Дашборд — общая статистика курорта (открытые трассы, очереди, активные пользователи) | GET /metrics/global (analytics) + GET /resort/lifts |
| Управление подъёмниками — открыть/закрыть, обновить расписание, выставить queue manually | PATCH /resort/lifts/:id (расширить resort-svc) |
| Управление трассами — open/close, описание, координаты | PATCH /resort/slopes/:id |
| Push-рассылка — отправить всем / по сегменту (юзеры с активным паcсом, проживающие в отеле X) | POST /push/send (расширить platform-svc) |
| Бейджи менеджмент — создать новый, отредактировать threshold | CRUD /badges/admin/:id (resort-svc) |
| Лидерборд аналитика — топы по разным метрикам | GET /leaderboard/:period?detailed=1 |
| Webcams CMS — добавить/удалить камеры, обновить URL | CRUD /webcams/admin/:id |
| AI-рекомендации тюнинг — настроить веса алгоритма (погода, очереди, уровень) | PATCH /recommendations/config |
| Feature flags — включать/выключать фичи без deploy | PATCH /platform/flags (готово, нужен UI) |
| App config — менять rescue_phone, latest_version, force_update_below | PATCH /platform/config |
| Аналитика воронок — booking, payment, signup, story | GET /metrics/funnel (готово) |
| Модерация stories — скрыть, удалить, ban-user | CRUD /stories/admin/* (расширить resort-svc) |
| SOS-инциденты — список + статус + назначение спасателей | уже есть в монолите, нужен UI |
Роль 2 · ОТЕЛЬЕР (src/pages/hotelier/)¶
| Уже есть | Что добавить |
|---|---|
| ✅ Дашборд (выручка/брони) | Push-нотификация при новой брони (WS realtime:provider:{pid}) |
| ✅ Список отелей | Реальная связь с booking-svc (раньше монолит) |
| ✅ Бронирования | Подтверждение/отклонение через POST /bookings/:id/confirm |
| ✅ Календарь занятости | Real-time из booking-svc |
| ✅ Профиль | — |
Чаты с гостями — GET /chats/me (chat-svc) |
|
| Финансы — выплаты от Архыз.CLUB (platform-svc + booking-svc payments) | |
| Аналитика отеля — заполняемость, средний чек, conversion |
Роль 3 · ТУРОПЕРАТОР (src/pages/tour-operator/)¶
| Уже есть | Что добавить |
|---|---|
| ✅ Дашборд | AI-рекомендации туров под погоду/сезон |
| ✅ Каталог туров CRUD | Schedule manager — даты + лимиты группы |
| ✅ Заявки | Манифест группы — список туристов с чек-ином |
| ✅ Гиды команды | Назначение гида на конкретный тур-выезд |
| Чаты с группой — массовая рассылка участникам | |
| Live-трекинг тура — где сейчас группа на карте (через tracking-svc) |
Роль 4 · РЕСТОРАН (src/pages/restaurant/)¶
| Уже есть | Что добавить |
|---|---|
| ✅ Дашборд резервов | Real-time push при новой брони |
| ✅ Меню CRUD | Категории меню (S94 в дизайне есть) |
| ✅ План зала + столы | — |
| ✅ Брони столов | Деталь резерва с предзаказом (S95) |
| ✅ Часы и смены | — |
| ✅ Профиль | — |
| Slope-food orders — приём заказов на доставку к подъёмнику (новая фича) |
Роль 5 · ИНСТРУКТОР (src/pages/instructor/)¶
| Уже есть | Что добавить |
|---|---|
| ✅ Дашборд | — |
| ✅ Тарифы CRUD | — |
| ✅ Слоты дня | Календарь занятости |
| ✅ Заявки | Подтверждение через POST /bookings/:id/confirm |
| ✅ Ученики | Карточка ученика — прогресс/история (S96) |
| ✅ Профиль | Отзывы (S97) |
| Чат с учеником — chat-svc | |
| Live-урок tracking — share GPS-локации с учеником |
Роль 6 · ТРАНСФЕР (src/pages/transfer/)¶
| Уже есть | Что добавить |
|---|---|
| ✅ Дашборд | — |
| ✅ Автопарк | Карточка авто — ТО, ОСАГО (S98) |
| ✅ Маршруты + тарифы | — |
| ✅ Заявки | Назначение авто+водителя |
| ✅ Водители | Карточка водителя — документы (S99) |
| ✅ Профиль | — |
| Live-трекинг авто — где сейчас на карте (S100) | |
| Чат с пассажиром — статус «выехал», «подъезжаю» |
📅 Срок Phase 5 + 6¶
| Phase | Что | Срок |
|---|---|---|
| 5 (seed) | Sprint 5.1-5.4 | ~2 дня |
| 6 (admin UI) | По 1-2 спринта на роль (6 ролей) | ~2 недели |
Итого до полной production-готовности: ~3 недели от сегодня.
🎯 Что начинаем СЕЙЧАС?¶
Опции: - (A) Phase 5.1 — seed catalog в БД (~0.5 дня): отели, туры, рестораны, инструкторы, трансферы с реальными фото - (B) Phase 5.2 — seed resort: lifts, slopes, webcams, badges, targets - (C) Phase 5.3 — seed booking+chat: brony+payments+chats для u1 - (D) Phase 5.4 — единый seed_all.py скрипт с idempotency - (E) Phase 6.1 — расширить АДМИН-панель (push-рассылка, badges-менеджмент, app-config UI) - (F) Phase 6.2-6.6 — поочерёдно для каждой роли (Hotelier → Tour-op → Restaurant → Instructor → Transfer)
Скажи букву — стартую сразу.