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

Версия 1.5

Дата: 16.09.2026


Изменения

API — раздел документации

  • Добавлен раздел «API» в навигацию документации
  • Обзорная страница API (api/index.md) — описание базового URL, групп эндпоинтов, ссылка на Swagger UI
  • Scalar (api/scalar.html) — интерактивная документация OpenAPI через CDN (Scalar), доступна в рамках сайта на том же порту
  • Заготовка OpenAPI-спецификации (api/openapi.yaml) — OpenAPI 3.1, разбита на модули через $ref:
  • Основной файл — info, servers, tags, security
  • paths/auth.yaml — авторизация (login, logout, refresh)
  • paths/users.yaml — пользователи (профиль)
  • paths/professions.yaml — профессии (список, детали)
  • paths/quiz.yaml — викторина (сессии, ответы)
  • paths/profstart.yaml — ПрофСтарт (сессии, ответы, результат)
  • paths/analytics.yaml — аналитика (события)
  • paths/cms.yaml — CMS (справочники, вопросы, анкеты)
  • paths/feedback.yaml — обратная связь (анкеты, ответы)
  • paths/files.yaml — файлы (загрузка, получение)
  • paths/quiz.yaml — викторина полностью: CMS (вопросы, шаблоны, раунды), игровая сессия, мобильный клиент

Викторина — API и модель данных

  • Обновлена модель данных GameSession (entities/game-session.md):
  • Убран scenario_template_id — шаблон используется только для заполнения при создании
  • Добавлены current_round_index, current_question_index — для восстановления после сбоя
  • Детализирован settings: auto_reveal, auto_next, auto_next_delay, between_rounds_delay, show_intermediate_results
  • Убрана role из GameSessionParticipant — капитан определяется через GameSessionTeam.captain_id
  • Добавлены сущности: GameSessionRound, GameSessionQuestion (снапшоты), GameSessionAnswer (ответы)
  • Добавлено описание состояния в Redis: таймер (remaining/running/updated_at), голоса, revealed
  • Добавлено 24 эндпоинта викторины в API:
  • CMS: вопросы (CRUD), шаблоны (CRUD + publish/unpublish), раунды и вопросы в раундах
  • Сессия: создание, получение, завершение, next, reveal, timer pause/resume, результаты
  • Мобильный клиент: join, team join, vote, answer

Интерфейсы — обновление

  • Мобильный клиент: ответ (interfaces/mobile-client/answer.md):
  • Добавлен раздел «API ответов» — единый эндпоинт для всех типов ответов (individual/team vote/team answer)
  • Добавлен раздел «Восстановление сессии» — GET /quiz/sessions/active
  • Добавлены состояния: ожидание начала (waiting), между раундами
  • Планшет оператора: управление раундом (interfaces/operator-tablet/round-control.md):
  • Добавлены разделы «Восстановление сессии» и «Статусы сессии» (waiting/active/finished)
  • Описано поведение при auto_reveal = true/false — автопоказ ответа или ручная кнопка
  • Описан автопереход (auto_next) с задержкой auto_next_delay
  • Завершение сессии через POST /quiz/sessions/{id}/finish

LED-медиаплатформа — викторина

  • Обновлена страница викторины (subsystems/led-platform/quiz.md):
  • Добавлены статусы сессии (waiting/active/finished)
  • Этапы командной сессии привязаны к статусам
  • Добавлена таблица настроек сессии (auto_reveal, auto_next, auto_next_delay, between_rounds_delay, show_intermediate_results)

Инфраструктура

  • Скрипты (scripts/): bundle_openapi.py (сборка OpenAPI из модулей), mkdocs_hook.py (хук для MkDocs)