Перейти к содержанию

🗺 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)

Скажи букву — стартую сразу.