Предложение: Централизованная админ-панель (Operator Cockpit)

Предложение: Централизованная админ-панель (Operator Cockpit)
Photo by Zhen Yao / Unsplash

Проблема

Рынок работает, но нет интерфейса для управления.

Что нельзя сделать сейчас:

  • ❌ Запустить IPO для новой персоны
  • ❌ Одобрить/отклонить заявку на публичную личность
  • ❌ Посмотреть что происходит с аукционом в реальном времени
  • ❌ Вручную исправить проблему с застрявшей транзакцией
  • ❌ Посмотреть логи market maker
  • ❌ Остановить торги в экстренной ситуации

Итог: Приходится лезть в базу данных напрямую или запускать скрипты через консоль.


Решение: Operator Cockpit

Единая админ-панель для полного контроля над рынком.

Главные разделы:

  1. 🎯 Dashboard — обзор системы
  2. 👤 Модерация персон — одобрение заявок
  3. 🚀 Управление IPO — создание, запуск, мониторинг
  4. 📊 Мониторинг рынка — графики, orderbook, активность
  5. 💰 Транзакции — история, фильтры, детали
  6. ⚙️ Настройки — конфигурация системы
  7. 🔧 Аварийное управление — ручное вмешательство

1. Dashboard — Обзор системы

Что видит оператор:

┌─────────────────────────────────────────────────┐
│  PersonalShares Operator Cockpit                │
│                                                  │
│  🟢 System Status: Operational                  │
│  🔄 Market Maker: Running                       │
│  📈 Active Assets: 12                           │
│  👥 Active Users: 1,234                         │
│                                                  │
│  Last 24 Hours:                                 │
│  💸 Trading Volume:    $456,789                 │
│  🤝 Transactions:      2,345                    │
│  📝 New Orders:        456                      │
│  ⚡ Avg Response Time: 45ms                     │
│                                                  │
│  🔔 Alerts:                                     │
│  ⚠️  USYK auction - low demand in round 4      │
│  ⚠️  MNTK - high volatility detected           │
│  ✅  3 new persons pending moderation           │
└─────────────────────────────────────────────────┘

Виджеты:

  • ✅ Статус системы (маркет-мейкер работает/остановлен)
  • ✅ Ключевые метрики (объём торгов, транзакции, пользователи)
  • ✅ Алерты (проблемы, требующие внимания)
  • ✅ Быстрые действия (кнопки для частых операций)
  • ✅ Последние события (логи в реальном времени)

2. Модерация персон

Список заявок на модерацию:

┌───────────────────────────────────────────────────────────┐
│  Pending Moderation (3)                                    │
├───────────────────────────────────────────────────────────┤
│                                                            │
│  [👤] Oleksandr Usyk                      Status: Pending │
│      📧 usyk@example.com                                  │
│      🔗 Instagram: 2.5M followers                         │
│      🔗 TikTok: 1.8M followers                            │
│      📝 "Professional boxer, Olympic champion..."         │
│                                                            │
│      [✅ Approve]  [❌ Reject]  [👁️ View Profile]         │
│                                                            │
├───────────────────────────────────────────────────────────┤
│                                                            │
│  [👤] Maria Shevchenko                    Status: Pending │
│      📧 maria@example.com                                 │
│      🔗 YouTube: 500K subscribers                         │
│      📝 "Tech blogger, crypto enthusiast..."              │
│                                                            │
│      [✅ Approve]  [❌ Reject]  [👁️ View Profile]         │
│                                                            │
└───────────────────────────────────────────────────────────┘

Действия:

  • ✅ Просмотр полного профиля
  • ✅ Проверка соцсетей (клик открывает в новой вкладке)
  • ✅ Одобрить / отклонить с комментарием
  • ✅ Запросить дополнительную информацию
  • ✅ История модераций (кто одобрил, когда)

Фильтры:

  • По статусу: Pending / Approved / Rejected
  • По дате подачи
  • По количеству подписчиков

3. Управление IPO

3.1 Список активов

┌────────────────────────────────────────────────────────────────┐
│  Assets                                [+ Create New Asset]     │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  USYK - Oleksandr Usyk                     Type: IPO           │
│  Status: Clock Auction Round 4             Price: $130         │
│  Sold: 60 / 1,000 shares                   Buyers: 45          │
│  [🎯 Monitor] [⚙️ Manage] [📊 Analytics]                       │
│                                                                 │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  MNTK - Maria Shevchenko                   Type: Listed        │
│  Status: Trading                           Price: $95.50       │
│  Volume 24h: $12,450                       Change: +8.5%       │
│  [📊 View Market] [⚙️ Settings]                                │
│                                                                 │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  BRSKH - Borys Shukhevych                  Type: Pre-IPO       │
│  Status: Preparing                         Price: —            │
│  [🚀 Launch IPO] [⚙️ Configure]                                │
│                                                                 │
└────────────────────────────────────────────────────────────────┘

3.2 Создание нового актива

Форма создания:

┌────────────────────────────────────────────┐
│  Create New Asset                          │
├────────────────────────────────────────────┤
│                                             │
│  Ticker Symbol:   [EXAMPLE]                │
│  Person:          [Select from approved ⬇] │
│                                             │
│  Asset Type:                               │
│  ○ Pre-IPO (not trading yet)               │
│  ● IPO (ready for placement)               │
│  ○ Listed (already trading)                │
│                                             │
│  Total Shares:    [1,000,000]              │
│                                             │
│  IPO Type:                                 │
│  ○ Simple IPO (fixed price)                │
│  ● Clock Auction (price discovery)         │
│                                             │
│  [Next: Configure IPO →]                   │
│                                             │
└────────────────────────────────────────────┘

3.3 Настройка Clock Auction

┌────────────────────────────────────────────┐
│  Clock Auction Configuration               │
├────────────────────────────────────────────┤
│                                             │
│  Start Price:           [$100]             │
│  Price Increment:       [$10] per round    │
│  Shares Per Round:      [1,000]            │
│  Min Buyers to Continue:[50] people        │
│  Max Shares Per User:   [1] share          │
│                                             │
│  Post-Auction Rounds:   ☑ Enable           │
│  └─ Price Growth:       [10]%              │
│  └─ Shares Per Round:   [5]% of total      │
│                                             │
│  [← Back] [Create & Start Auction]         │
│                                             │
└────────────────────────────────────────────┘

3.4 Настройка Simple IPO

┌────────────────────────────────────────────┐
│  Simple IPO Configuration                  │
├────────────────────────────────────────────┤
│                                             │
│  Presale:               ☑ Enable           │
│  └─ Price:              [$80]              │
│  └─ Shares:             [10,000]           │
│                                             │
│  Public Listing:                           │
│  └─ Price:              [$100]             │
│  └─ Shares:             [50,000]           │
│                                             │
│  Discount: 20% (auto-calculated)           │
│                                             │
│  [← Back] [Create IPO]                     │
│                                             │
└────────────────────────────────────────────┘

3.5 Мониторинг аукциона (Real-time)

┌────────────────────────────────────────────────────────────────┐
│  USYK Clock Auction - Live Monitor                             │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Status: 🟢 Active                      Round: 4 of ?          │
│  Current Price: $130                    Started: 2h 15m ago    │
│                                                                 │
│  Progress:                                                      │
│  ████████████░░░░░░░░░░░░░░░ 45 / 1,000 shares (4.5%)         │
│                                                                 │
│  Buyers: 45 (min required: 50)                                 │
│  ⚠️ Warning: Below minimum threshold                           │
│                                                                 │
│  Round History:                                                │
│  Round 1: $100 → 300 buyers → Completed                       │
│  Round 2: $110 → 150 buyers → Completed                       │
│  Round 3: $120 → 80 buyers → Completed                        │
│  Round 4: $130 → 45 buyers (ongoing...)                       │
│                                                                 │
│  Actions:                                                      │
│  [⏸️ Pause Auction] [🛑 Cancel Auction] [⚙️ Adjust Settings]  │
│                                                                 │
│  Recent Activity (auto-refresh):                               │
│  18:45 - user_123 bought 1 share at $130                       │
│  18:44 - user_456 bought 1 share at $130                       │
│  18:42 - user_789 bought 1 share at $130                       │
│                                                                 │
└────────────────────────────────────────────────────────────────┘

Действия в реальном времени:

  • ✅ Пауза аукциона (если проблемы)
  • ✅ Отмена аукциона
  • ✅ Ручное завершение раунда
  • ✅ Изменение параметров на лету (если критично)
  • ✅ Auto-refresh каждые 5 секунд

4. Мониторинг рынка

4.1 Orderbook в реальном времени

┌────────────────────────────────────────────────────────────────┐
│  Market Depth - USYK                       Price: $152.50      │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ПОКУПАЮТ:                    ПРОДАЮТ:                         │
│  $150 × 100 шт                $151 × 50 шт                     │
│  $149 × 50 шт                 $152 × 100 шт                    │
│  $148 × 20 шт                 $155 × 200 шт                    │
│                                                                 │
│  Spread: $1.00 (0.66%)                                         │
│  Total Bids: 170 shares       Total Asks: 350 shares           │
│                                                                 │
│  [📊 Full Orderbook] [⚡ Live Trades] [📈 Price Chart]         │
│                                                                 │
└────────────────────────────────────────────────────────────────┘

4.2 Активность по всем тикерам

┌────────────────────────────────────────────────────────────────┐
│  Market Activity (Last 1 Hour)                                 │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Ticker  │  Volume   │  Trades  │  Price    │  Change          │
│  ────────┼───────────┼──────────┼───────────┼──────────        │
│  USYK    │  $12,450  │  234     │  $152.50  │  +8.5% 🔥       │
│  MNTK    │  $8,900   │  156     │  $95.00   │  +2.3%          │
│  BRSKH   │  $4,200   │  78      │  $45.50   │  -1.2%          │
│                                                                 │
│  🔥 Hottest: USYK (+8.5%)                                      │
│  📉 Weakest: BRSKH (-1.2%)                                     │
│  💰 Highest Volume: USYK ($12,450)                             │
│                                                                 │
└────────────────────────────────────────────────────────────────┘

5. Транзакции

5.1 История транзакций с фильтрами

┌────────────────────────────────────────────────────────────────┐
│  Transactions                                                   │
│  [Filters ⬇]  Type: All  Status: All  Ticker: All  User: All  │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ID: tx_12345        Type: spot_buy        Status: ✅ completed│
│  User: user_789      Ticker: USYK                              │
│  Amount: 10 shares   Price: $150           Total: $1,500       │
│  Time: 2025-10-13 18:45:23                                     │
│  [👁️ Details] [🔄 Recalculate Portfolio]                      │
│                                                                 │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ID: tx_12344        Type: limit_sell      Status: ⏸️ active  │
│  User: user_456      Ticker: MNTK                              │
│  Amount: 50 shares   Price: $100           Total: $5,000       │
│  Executed: 20/50 (40%)                                         │
│  [👁️ Details] [❌ Cancel Order]                               │
│                                                                 │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ID: tx_12343        Type: spot_buy        Status: ❌ failed   │
│  User: user_123      Ticker: USYK                              │
│  Error: "Insufficient USD balance"                             │
│  [👁️ Details] [🔄 Retry]                                      │
│                                                                 │
└────────────────────────────────────────────────────────────────┘

Фильтры:

  • По типу транзакции (spot_buy, limit_sell, ipo_sell...)
  • По статусу (completed, active, failed, cancelled)
  • По тикеру
  • По пользователю
  • По дате/времени
  • По сумме (от/до)

5.2 Детали транзакции

┌────────────────────────────────────────────┐
│  Transaction Details                       │
├────────────────────────────────────────────┤
│                                             │
│  ID: tx_12345                              │
│  Type: spot_buy                            │
│  Status: ✅ completed                      │
│                                             │
│  User:                                     │
│  └─ ID: user_789                           │
│  └─ Email: investor@example.com            │
│                                             │
│  Trade:                                    │
│  └─ Ticker: USYK                           │
│  └─ Amount: 10 shares                      │
│  └─ Price: $150.00                         │
│  └─ Total: $1,500.00                       │
│                                             │
│  Execution:                                │
│  └─ Matched with 2 sell orders             │
│  └─ Order 1: 7 shares @ $149               │
│  └─ Order 2: 3 shares @ $152               │
│  └─ Avg Price: $150.00                     │
│                                             │
│  Timeline:                                 │
│  └─ Created: 2025-10-13 18:45:20           │
│  └─ Executed: 2025-10-13 18:45:23          │
│  └─ Duration: 3s                           │
│                                             │
│  [Close] [🔄 Reprocess] [❌ Cancel]        │
│                                             │
└────────────────────────────────────────────┘

6. Настройки системы

┌────────────────────────────────────────────┐
│  System Configuration                      │
├────────────────────────────────────────────┤
│                                             │
│  Market Maker:                             │
│  ● Enabled  ○ Disabled                     │
│  └─ Poll Interval: [5000] ms               │
│  └─ Max Retries: [3]                       │
│                                             │
│  Trading:                                  │
│  ☑ Allow spot orders                       │
│  ☑ Allow limit orders                      │
│  ☑ Allow stop orders                       │
│  ☑ Self-trading prevention                 │
│                                             │
│  IPO Defaults:                             │
│  └─ Total shares: [1,000,000]              │
│  └─ Auction start price: [100]             │
│  └─ Auction increment: [10]                │
│                                             │
│  Notifications:                            │
│  ☑ Email alerts for failed transactions    │
│  ☑ Slack alerts for system errors          │
│  └─ Slack Webhook: [https://...]          │
│                                             │
│  [Save Changes]                            │
│                                             │
└────────────────────────────────────────────┘

7. Аварийное управление

7.1 Emergency Actions

┌────────────────────────────────────────────┐
│  ⚠️ Emergency Controls                     │
├────────────────────────────────────────────┤
│                                             │
│  Market Maker:                             │
│  [⏸️ Pause Processing]                     │
│  [▶️ Resume Processing]                    │
│  [🔄 Force Process Ticker: [____]]         │
│                                             │
│  Trading:                                  │
│  [🛑 Halt All Trading]                     │
│  [🛑 Halt Trading for Ticker: [____]]      │
│  [✅ Resume All Trading]                   │
│                                             │
│  Maintenance:                              │
│  [🔄 Recalculate All Portfolios]           │
│  [🔄 Recalculate All Prices]               │
│  [🗑️ Cancel All Active Orders]            │
│                                             │
│  ⚠️ These actions require confirmation     │
│                                             │
└────────────────────────────────────────────┘

7.2 Логи Market Maker (Real-time)

┌────────────────────────────────────────────────────────────────┐
│  Market Maker Logs                     [Auto-refresh: ON ⬇]   │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  18:45:23 [INFO]  🔄 Processing orders for ticker USYK         │
│  18:45:23 [INFO]  📊 Found 12 buy orders, 8 sell orders        │
│  18:45:23 [SUCCESS] ✅ Matched 2 orders (10 shares @ $150)     │
│  18:45:24 [INFO]  💰 Updated current price: $150.00            │
│  18:45:24 [INFO]  🔄 Processing orders for ticker MNTK         │
│  18:45:24 [WARN]  ⚠️ No matches found for limit orders         │
│  18:45:25 [INFO]  🎯 Clock auction USYK: checking round 4      │
│  18:45:25 [WARN]  ⚠️ Buyers (45) < minimum (50)                │
│  18:45:26 [ERROR] ❌ Transaction tx_12346 failed:              │
│                   Insufficient USD balance for user_999        │
│                                                                 │
│  [Filter by Level ⬇] [Search...] [📥 Download Logs]           │
│                                                                 │
└────────────────────────────────────────────────────────────────┘

Уровни логов:

  • 🔵 DEBUG
  • ℹ️ INFO
  • ⚠️ WARN
  • ❌ ERROR

Действия:

  • ✅ Real-time обновление
  • ✅ Фильтр по уровню
  • ✅ Поиск по тексту
  • ✅ Скачать логи (CSV/JSON)
  • ✅ Показать контекст (раскрыть детали)

8. Доступ и безопасность

Роли:

Super Admin:

  • Полный доступ ко всем функциям
  • Может создавать новых админов
  • Аварийное управление

Operator:

  • Модерация персон
  • Управление IPO
  • Просмотр транзакций
  • Мониторинг рынка

Support:

  • Только просмотр
  • Может видеть транзакции пользователей
  • Не может изменять

Auditor:

  • Read-only доступ ко всему
  • Скачивание отчётов
  • Логи аудита

Аутентификация:

  • ✅ Двухфакторная аутентификация (2FA)
  • ✅ Логи действий (кто, что, когда)
  • ✅ IP whitelist
  • ✅ Session timeout (15 минут неактивности)

Технический стек

Frontend:

- React (админка)
- Material-UI или Ant Design (компоненты)
- WebSocket (real-time обновления)
- Chart.js (графики)

Backend:

- Express роуты /api/admin/*
- Middleware для проверки admin роли
- WebSocket server для live updates

Database:

- Таблица admin_users (роли, права)
- Таблица admin_logs (аудит действий)

Roadmap разработки

MVP

  • ✅ Базовая авторизация и роли
  • ✅ Dashboard с метриками
  • ✅ Модерация персон (approve/reject)
  • ✅ Список активов
  • ✅ Создание Simple IPO
  • ✅ История транзакций с фильтрами

Аукционы и мониторинг

  • ✅ Создание Clock Auction
  • ✅ Real-time мониторинг аукционов
  • ✅ Управление раундами (пауза, отмена)
  • ✅ Orderbook в реальном времени
  • ✅ Детали транзакций

Аналитика и инструменты

  • ✅ Графики и чарты
  • ✅ Market Maker логи (live)
  • ✅ Аварийное управление
  • ✅ Настройки системы
  • ✅ Отчёты и экспорт данных

Продвинутые фичи

  • ✅ A/B тесты (разные параметры аукционов)
  • ✅ Предиктивная аналитика (ML)
  • ✅ Автоматические алерты (Slack/Email)
  • ✅ Bulk operations (массовые действия)
  • ✅ API для внешних инструментов

Примеры сценариев использования

Сценарий 1: Запуск нового IPO

1. Оператор заходит в "Модерация персон"
   → Видит заявку от Oleksandr Usyk
   → Проверяет соцсети
   → Одобряет

2. Оператор переходит в "Управление IPO"
   → Кликает "Create New Asset"
   → Выбирает Usyk из списка одобренных
   → Ticker: USYK
   → Type: Clock Auction

3. Настраивает параметры аукциона:
   → Start price: $100
   → Increment: $10
   → Shares per round: 1,000
   → Min buyers: 50

4. Кликает "Create & Start Auction"
   → Аукцион стартует автоматически
   → Система создаёт первый раунд

5. Оператор переходит в "Monitor USYK"
   → Видит live обновления
   → Раунд 1: 300 заявок → переходит в раунд 2
   → Раунд 2: 150 заявок → переходит в раунд 3
   → ...

Сценарий 2: Проблема с застрявшей транзакцией

1. Dashboard показывает алерт:
   ⚠️ Transaction tx_12345 stuck for 5 minutes

2. Оператор кликает на алерт
   → Открываются детали транзакции
   → Видит: spot_buy, status: "processing"

3. Оператор смотрит логи:
   [ERROR] Failed to update portfolio for user_789
   [ERROR] Database connection timeout

4. Оператор кликает "Retry"
   → Транзакция перезапускается
   → Status: ✅ completed

5. Если не помогло:
   → Emergency Controls
   → "Recalculate Portfolio for user_789"
   → Проблема решена

Сценарий 3: Аукцион под угрозой отмены

1. Live monitor показывает:
   ⚠️ USYK Round 4: 45 buyers (min: 50)

2. Оператор видит что осталось 10 минут
   до конца раунда

3. Варианты действий:

   Вариант A: Подождать
   → Может успеют ещё 5 человек купить

   Вариант B: Снизить минимум
   → Settings → Min buyers: 40 → Save
   → Аукцион продолжается

   Вариант C: Отменить раунд
   → Cancel Round 4
   → Fallback price = $120 (Round 3)
   → Запуск post-auction rounds

4. Оператор выбирает Вариант B
   → Параметр обновлён
   → Через 5 минут: раунд закрывается с 48 buyers
   → Переход к раунду 5

TL;DR

Проблема: Рынок работает, но управлять им можно только через БД или консоль.

Решение: Централизованная админ-панель (Operator Cockpit) для:

  1. Модерации персон — approve/reject в пару кликов
  2. Запуска IPO — простая форма, автоматический старт
  3. Мониторинга аукционов — live обновления, управление раундами
  4. Контроля рынка — orderbook, транзакции, логи
  5. Аварийного управления — пауза/отмена/пересчёт

Результат:

  • ✅ Оператор управляет рынком без знания SQL
  • ✅ Все операции через UI, а не консоль
  • ✅ Real-time мониторинг всех процессов
  • ✅ Быстрое реагирование на проблемы
  • ✅ Аудит всех действий

Срок разработки: 3-4 месяца (MVP за 1 месяц)

Приоритет: 🔥 Высокий — без админки управлять платформой сложно и опасно.