Личный кабинет — экранная карта MVP MVP

Веб-приложение app.seodoctor.dev (или cours.site/app). Те же данные, что Telegram-бот: projects, audit_runs, этапы 1–3.

Главный сценарий Вошёл → видит проекты и CI-статус → открывает сайт → запускает этап → читает отчёт → правит → повторяет → переходит на следующий этап.

Навигация (sidebar)

ПунктURLНазначение
Дашборд/appВсе проекты, сводка CI
Проекты/app/projectsСписок сайтов
История/app/historyВсе прогоны workspace
Команда/app/teamУчастники и роли — Team+
Интеграции/app/integrationsCI, webhook — Team+
Тариф/app/billingПлан, лимиты, оплата
Настройки/app/settingsПрофиль, Telegram, уведомления

Site: скрыть «Команда» и «Интеграции» (или badge «Team»). Free: редирект в бота + billing upgrade.

Экраны

/app — Дашборд

Блоки

  • Приветствие + название workspace
  • Карточки: проектов / прогонов в месяце / CI BLOCK сейчас
  • Таблица проектов: URL, последний этап, вердикт, дата
  • Блок «требует внимания»: BLOCK или рост critical
  • CTA: добавить проект / запустить этап 1

Действия

Клик по проекту → карточка проекта

/app/projects/new — Новый проект

  • Поле URL / домен
  • Название (опционально)
  • Подсказка: сначала этап 1
  • Лимит проектов по тарифу

Создать → редирект на проект + предложение stage1

/app/projects/:id — Карточка проекта

  • Шапка: URL, последний вердикт CI OK/BLOCK
  • Три кнопки: Этап 1 / 2 / 3
  • Прогресс этапов: 1 ✓ → 2 → 3
  • Последний отчёт (кратко) + «полный отчёт»
  • Динамика critical/warning за N прогонов
  • Список последних 5 прогонов

Запуск этапа → очередь → live status → отчёт

/app/runs/:id — Отчёт прогона

  • Этап N/3, сайт, дата, кто запустил
  • Вердикт CI OK / BLOCK
  • Что проверяли
  • Счётчики critical / warning / info
  • Находки: описание → зачем → рекомендация
  • «Что делать дальше»
  • Сравнение с предыдущим прогоном того же этапа
  • Повторить / следующий этап / экспорт PDF

Повтор → новый run; следующий этап → stage+1

/app/history — История

  • Фильтр: проект, этап, вердикт, период
  • Таблица: дата, проект, этап, вердикт, Δ critical
  • Пагинация

Строка → /app/runs/:id

/app/billing — Тариф и оплата

  • Текущий план
  • Использование: прогоны X / лимит, проекты Y / лимит
  • Дата следующего списания
  • Сравнение тарифов (upgrade)
  • История платежей
  • Разовые покупки

Upgrade → оплата; докупить прогоны (опционально)

/app/settings — Настройки

  • Профиль: имя, email
  • Привязка Telegram (код / deep link)
  • Уведомления: email при CI BLOCK
  • Язык интерфейса

Сохранить; отвязать Telegram

/app/team — Команда (Team+)

  • Список участников: email, роль, дата
  • Пригласить по email
  • Роли: owner, admin, seo, developer, viewer

/app/integrations — Интеграции (Team+)

  • GitHub: connect repo к проекту
  • Webhook URL для CI
  • Инструкция: seo-doctor audit --ci
  • Последние CI-прогоны

Wireframe: дашборд

┌─────────────────────────────────────────────────────────┐
│ SEO Doctor    [Workspace ▼]              Иван  [Настройки] │
├──────────┬──────────────────────────────────────────────┤
│ Дашборд  │  Добро пожаловать, Workspace «Acme»          │
│ Проекты  │  ┌────────┐ ┌────────┐ ┌────────┐            │
│ История  │  │ 3      │ │ 12/150 │ │ 1 BLOCK│            │
│ Тариф    │  │проекта │ │прогонов│ │сейчас  │            │
│ Настройки│  └────────┘ └────────┘ └────────┘            │
│          │  Проекты                                    │
│          │  ┌──────────────────────────────────────────┐│
│          │  │ cours.site    Этап 2  CI OK   16.07     ││
│          │  │ shop.ru       Этап 1  BLOCK 15.07  [!] ││
│          │  └──────────────────────────────────────────┘│
│          │  [+ Добавить проект]  [Запустить этап 1]     │
└──────────┴──────────────────────────────────────────────┘

Wireframe: карточка проекта

shop.ru                          Последний: CI BLOCK
─────────────────────────────────────────────────────
Этапы:  [1 База ✓] → [2 Детально ●] → [3 Production ○]

[Запустить этап 1] [Запустить этап 2] [Запустить этап 3]

Последний отчёт (этап 2, 15.07)
  Critical: 2  Warning: 5  Info: 3
  → 3 битые ссылки, 2 без H1 ...
  [Открыть полный отчёт]

Динамика critical (последние 5 прогонов):  5 → 3 → 2 → 2 → 2
История прогонов ▼

Доступ по ролям

РольВидитМожет
ownerВсёbilling, team, delete workspace
adminПочти всёбез смены владельца
seoАудитызапуск этапов, отчёты, без billing
developerCI + отчётыинтеграции, без приглашений
viewerЧтениедашборд и отчёты

Связь с ботом

Единый backend

  • Бот и кабинет пишут в audit_runs
  • Отчёт в Telegram = тот же run_id, что в /app/runs/:id
  • Привязка: settings → код → /link ABC в боте

Только в боте (опционально)

  • Быстрый ввод домена без входа (Free)
  • Push «прогон готов» в Telegram
  • Команды /stage1 без браузера

Фазы внедрения UI

ФазаСоставОценка
Фаза 1Login (magic link) + дашборд + проект + отчёт2–3 нед
Фаза 2История + billing read-only + лимиты2 нед
Фаза 3Оплата + team + CI карточка3–4 нед
Не тащить в MVP кабинета GEO-дашборды, граф перелинковки, авто-фикс UI, Ahrefs — это Q1 2027 по roadmap. MVP = проекты, этапы, отчёты, история, тариф.

Стек (предложение)

API: FastAPI или Node поверх Postgres. Frontend: React/Next на cours.site/app. Auth: magic link + Telegram link. Worker: тот же seo_doctor.run_audit, что в боте.