diff --git a/frontend/teacher-guide.html b/frontend/teacher-guide.html
index 654a188..884db76 100644
--- a/frontend/teacher-guide.html
+++ b/frontend/teacher-guide.html
@@ -375,6 +375,42 @@
.tg-section.search-hidden { display: none; }
.tg-chapter.search-hidden { display: none; }
+ /* Admin guide block */
+ .tg-admin-divider {
+ display: flex; align-items: center; gap: 10px;
+ margin: 22px 0 10px;
+ font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em;
+ text-transform: uppercase; color: var(--text-3);
+ }
+ .tg-admin-divider::before, .tg-admin-divider::after {
+ content: ''; flex: 1; height: 1px; background: rgba(15,23,42,0.09);
+ }
+ .tg-nav-chapter.admin .tg-nav-ch-btn { color: #c0306a; }
+ .tg-nav-chapter.admin .tg-nav-ch-btn .tg-nav-ch-icon svg { stroke: #c0306a; }
+ .tg-nav-chapter.admin .tg-nav-ch-btn:hover,
+ .tg-nav-chapter.admin .tg-nav-ch-btn.active { background: rgba(241,91,181,0.07); }
+ .tg-admin-badge {
+ display: inline-flex; align-items: center; gap: 5px;
+ padding: 3px 10px; border-radius: 99px;
+ background: rgba(241,91,181,0.1); color: #c0306a;
+ font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
+ margin-left: auto;
+ }
+ .tg-admin-badge svg { width: 12px; height: 12px; stroke: currentColor; }
+ .tg-chapter.admin-chapter .tg-chapter-header { background: linear-gradient(135deg,rgba(241,91,181,0.04),rgba(155,93,229,0.04)); border-radius: 16px; margin-bottom: 4px; }
+ .tg-chapter.admin-chapter .tg-chapter-icon svg { stroke: #c0306a; }
+ .tg-chapter.admin-chapter .tg-chapter-num { color: #c0306a; }
+ .tg-chapter.admin-chapter .tg-chapter-try { background: rgba(241,91,181,0.1); color: #c0306a; border: 1.5px solid rgba(241,91,181,0.25); }
+ .tg-chapter.admin-chapter .tg-chapter-try:hover { background: #c0306a; color: #fff; }
+ .tg-chapter-admin-header {
+ display: inline-flex; align-items: center; gap: 7px;
+ padding: 6px 14px; border-radius: 99px;
+ background: rgba(241,91,181,0.1); color: #c0306a;
+ font-size: 0.76rem; font-weight: 700;
+ margin-bottom: 18px;
+ }
+ .tg-chapter-admin-header svg { width: 14px; height: 14px; stroke: currentColor; }
+
/* Mobile */
@media (max-width: 1024px) {
.tg-layout { padding: 0 16px 60px; gap: 0; }
@@ -409,6 +445,10 @@
+
+
Только для администратора
+
+
@@ -1248,9 +1288,6 @@
На онлайн-уроке
Откройте симуляцию в соседней вкладке и включите демонстрацию экрана — ученики увидят 3D-вращение в реальном времени. Или используйте режим аннотации прямо поверх симуляции на доске.
-
-
-
14.4 Управление симуляциями (для администратора)
В панели администратора → вкладка «Симуляции»:
—
Включить/выключить конкретную симуляцию из каталога.
@@ -1354,8 +1391,6 @@
Радужный ошейник
При стрике 7+ дней подряд питомец получает анимированный радужный ошейник. Отличный мотиватор для регулярной работы!
-
-
16.3 Начисление XP администратором
В панели администратора → вкладка «Геймификация» → раздел «Начислить XP / Монеты» :
1
Выберите ученика из списка (есть фильтр по имени).
@@ -1437,6 +1472,322 @@
+
+
+
+
+
+
+
+
+
+
A1.1 Главная страница администратора
+
После входа администратор попадает на командный центр — специальный дашборд вместо ученического. Показывает состояние платформы за последние 24 часа.
+
+
+
+
+
A1.2 Очередь триажа «Требует внимания»
+
Центральный блок дашборда — единая очередь событий, требующих действия. Фильтруется по вкладкам:
+
+
—
Блокировки — пользователи, заблокированные за неделю. Кнопка «Открыть» ведёт на карточку пользователя.
+
—
Зависшие — тестовые сессии, которые не завершились более 1 часа. Кнопка «Сессия» ведёт к ней.
+
—
Брошенные — всплеск прерванных сессий за 24ч (сигнал проблемы).
+
+
+
+
+
A1.3 Лента завершений и статистика контента
+
Лента завершений (правая колонка) — поток последних завершённых сессий с % и распределением по предметам.
+
Плитки контента ниже: число вопросов, тестов, курсов и классов в системе.
+
Результаты дня : Топ-5 (лучшие результаты) и «Нужна помощь» (ниже 50%) — быстрый способ выявить учеников, которым сложно.
+
+
+
+
+
+
Следующая глава
Управление пользователями
+
+
+
+
+
+
+
+
+
+
+
A2.1 Список пользователей
+
Панель администратора → вкладка «Пользователи» . Отображает всех зарегистрированных пользователей: имя, email, роль, дата регистрации, последний вход, количество тестов, средний балл.
+
Фильтры: по роли (admin/teacher/student/free_student), поиск по имени/email, пагинация (cursor-based).
+
+
+
+
A2.2 Карточка пользователя
+
Нажмите на пользователя → откроется его детальная карточка:
+
+
—
Смена роли — student / teacher / admin / free_student. Изменение инвалидирует токен, пользователь перелогинится.
+
—
Блокировка / разблокировка — заблокированный пользователь не может войти.
+
—
История сессий — все тестовые сессии пользователя с результатами.
+
—
Удаление — полное удаление пользователя и всех его данных.
+
+
Нельзя изменить свою роль
Администратор не может сменить роль самому себе — защита от случайного лишения доступа.
+
+
+
+
A2.3 Глобальный поиск (Ctrl+K)
+
В любом разделе админ-панели нажмите Ctrl+K (или кнопку в шапке) — откроется command palette:
+
+
—
Поиск по пользователям (имя / email) — результаты кликабельны, ведут на карточку.
+
—
Поиск по тестам — открывает редактирование теста.
+
—
Поиск по классам — открывает карточку класса.
+
+
+
+
+
+
+
Предыдущая глава
Командный центр
+
+
+
+
Следующая глава
Контент и доступ
+
+
+
+
+
+
+
+
+
+
+
A3.1 Allowlist — открытие учебников
+
Вкладка «Доступ к контенту» . Ученики видят только те учебники/экзамены, которые администратор явно открыл.
+
+
1
Выберите учебник или экзамен.
+
2
Добавьте класс — все ученики класса получат доступ.
+
3
Или добавьте конкретного ученика — приоритет выше, чем у класса.
+
+
Администраторы и учителя
Всегда видят весь контент независимо от allowlist.
+
+
+
+
A3.2 Управление симуляциями
+
Вкладка «Симуляции» — каталог всех 40 симуляций лаборатории:
+
+
—
Включить/выключить — отключённая симуляция не показывается ученикам.
+
—
Featured — отметить как рекомендованную (выводится вперёд).
+
—
Редактор связей — привязать симуляцию к параграфам учебников (кнопка «В лабораторию» в учебнике).
+
+
+
+
+
A3.3 Feature Flags
+
Включение/отключение целых модулей платформы. Изменения вступают в силу немедленно — без перезапуска сервера.
+
+
—
Биохимия, Учебники, Флэшкарты, Доска — основные образовательные модули.
+
—
Live-квиз — по умолчанию выключен, включите если нужен.
+
—
Экзамен-9 — 80 вариантов по математике 9 класса.
+
—
Симуляции отдельно — отключить весь модуль лаборатории или конкретные симуляции по id.
+
+
+
+
+
+
+
Предыдущая глава
Управление пользователями
+
+
+
+
Следующая глава
Геймификация (admin)
+
+
+
+
+
+
+
+
+
+
+
A4.1 Статистика геймификации
+
Вкладка «Геймификация» — сводка по всей платформе:
+
+
—
Суммарный XP и монеты — накоплено за всё время.
+
—
Средний уровень — средний уровень всех пользователей.
+
—
Достижений выдано — сколько ачивок получено суммарно.
+
—
Топ-10 по XP — рейтинговая таблица. Последние начисления XP — с читаемыми подписями (не raw-коды).
+
+
+
+
+
A4.2 Начисление XP и монет
+
Раздел «Начислить XP / Монеты»:
+
+
1
Выберите пользователя из списка. Используйте поле фильтра для быстрого поиска по имени.
+
2
Задайте XP через пресеты (0 / +10 / +25 / +50 / +100 / +250) или введите вручную. Значение 0 — не начисляется.
+
3
Задайте Монеты аналогично (0 / +10 / +25 / +50).
+
4
Выберите причину (быстрые кнопки: «Ручное начисление», «Мероприятие», «Активность», «Бонус», «Компенсация») или введите свою.
+
5
Нажмите «Начислить» . Пользователь получит XP/монеты немедленно; статистика обновится.
+
+
+
+
+
A4.3 Сброс прогресса
+
Раздел «Сбросить прогресс пользователя» — удаляет весь XP, монеты, достижения и историю начислений выбранного пользователя.
+
Необратимо
Данные удаляются безвозвратно. Система запросит подтверждение перед сбросом. Используйте только при явной необходимости (тест-аккаунты, ошибочные начисления).
+
+
+
+
+
+
Предыдущая глава
Контент и доступ
+
+
+
+
Следующая глава
Аудит и безопасность
+
+
+
+
+
+
+
+
+
+
+
A5.1 Аудит-лог
+
Вкладка «Аудит-лог» — хронология всех административных действий: кто, что, когда. Записываются:
+
+
—
Смены роли пользователей.
+
—
Блокировки и разблокировки.
+
—
Начисления XP/монет администратором.
+
—
Сброс прогресса пользователей.
+
—
Изменения разрешений (RBAC).
+
+
+
+
+
A5.2 Разрешения (RBAC)
+
Вкладка «Разрешения» — гранулярный контроль доступа. Два уровня:
+
+
—
Per-role — правило для роли целиком (например, разрешить teachers доступ к аналитике).
+
—
Per-user — правило для конкретного пользователя (приоритет выше, чем у роли).
+
+
free_student
Роль с минимальными правами — гибко настраивается через разрешения. Используйте для демо-аккаунтов или ограниченного доступа.
+
+
+
+
A5.3 Модерация аватаров
+
Ученики загружают фото профиля — оно не показывается другим до подтверждения.
+
+
1
В «Пользователи» → карточка ученика → вкладка «Аватар».
+
2
Принять — аватар начнёт отображаться везде. Отклонить — аватар сбрасывается, ученик получает уведомление.
+
+
+
+
+
+
+
Предыдущая глава
Геймификация (admin)
+
+
+
+
Следующая глава
System Health
+
+
+
+
+
+
+
+
+
+
+
A6.1 Метрики сервера в реальном времени
+
Вкладка «System Health» — состояние сервера Node.js:
+
+
+
+
+
A6.2 HTTP-статистика и журнал ошибок
+
+
—
Самые медленные роуты — найдите узкие места по avgMs.
+
—
Самые частые роуты — понимание нагрузки на API.
+
—
Статус-коды — соотношение 2xx / 4xx / 5xx.
+
—
Журнал ошибок — последние ошибки сервера с стектрейсом. Ищите здесь, если что-то сломалось.
+
+
Event Loop Lag > 200ms
Сигнал перегрузки: возможно блокирующая операция или слишком много одновременных запросов. Проверьте журнал ошибок и самые медленные роуты.
+
Готово!
Вы изучили полное руководство администратора (A1–A6). Удачи в работе!
+
+
+
+
+
+
Предыдущая глава
Аудит и безопасность
+
+
+
+
Вернуться к началу
Быстрый старт
+
+
+
+
+
+
@@ -1448,9 +1799,15 @@