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

ПрофСтарт (профориентационный тест)

Описание сущностей для профориентационного теста школьника.

Используется в модуле: ПрофСтарт.

→ Описание подсистемы


TestQuestion (Вопрос теста ПрофСтарт)

Вопрос для профориентационного теста школьника. Вопросы используются для расчёта профессиональных направлений.

Атрибуты

Поле Тип Описание
id UUID Уникальный идентификатор вопроса
type enum Тип вопроса из справочника
text text Текст вопроса
media_id UUID, nullable ID файла (изображение)
age_group enum Возрастная группа из справочника
order integer Порядок отображения (если фиксированный)
randomize boolean Случайный порядок отображения
created_at timestamp Дата создания
updated_at timestamp Дата обновления

Связи

  • TestQuestion → File: вопрос может иметь медиа-файл (media_id)
  • TestQuestion → TestAnswerOption: вопрос имеет множество вариантов ответа
  • TestQuestion → WeightMatrix: вопрос связан с весовыми коэффициентами по направлениям

Где используется

  • CMS — создание и управление вопросами теста
  • ПрофСтарт — показ вопросов школьникам

TestAnswerOption (Вариант ответа теста ПрофСтарт)

Вариант ответа для вопроса теста ПрофСтарт. Каждый вариант имеет весовые коэффициенты для профессиональных направлений.

Атрибуты

Поле Тип Описание
id UUID Уникальный идентификатор варианта
question_id UUID ID вопроса
text text Текст варианта ответа
media_id UUID, nullable ID файла (изображение)
order integer Порядок отображения

Весовые коэффициенты

Поле weights для весовых коэффициентов по направлениям не реализовано. Механика расчёта результатов требует доработки (см. ПрофСтарт — Цифровой профориентационный портрет).

Связи

  • TestAnswerOption → TestQuestion: вариант принадлежит одному вопросу (question_id)
  • TestAnswerOption → File: вариант может иметь медиа-файл (media_id)

Где используется

  • CMS — создание вариантов ответов
  • ПрофСтарт — показ вариантов пользователю

TestSession (Сессия прохождения теста)

Сессия прохождения профориентационного теста. Хранит информацию о том, кто, когда и какую версию теста проходил.

Атрибуты

Поле Тип Описание
id UUID Уникальный идентификатор сессии
user_id UUID ID пользователя (гостя или авторизованного) — всегда заполнен
age_group enum Возрастная группа: 12-14, 15-17
status enum Статус сессии: in_progress, completed, abandoned
started_at timestamp Дата и время начала теста
completed_at timestamp, nullable Дата и время завершения теста
interface_type enum Тип интерфейса: kiosk, web
created_at timestamp Дата создания записи
updated_at timestamp Дата обновления записи

Связи

  • TestSession → User: сессия привязана к пользователю (user_id) — гостю или авторизованному
  • TestSession → TestAnswer: сессия имеет множество ответов пользователя

Где используется

  • ПрофСтарт — создание сессии при начале теста, обновление статуса
  • Аналитика — анализ количества прохождений, длительности, завершённости
  • Цифровой профиль — история прохождений теста пользователем

TestAnswer (Ответ пользователя на вопрос теста)

Ответ пользователя на конкретный вопрос теста в рамках сессии.

Атрибуты

Поле Тип Описание
id UUID Уникальный идентификатор ответа
session_id UUID ID сессии прохождения
question_id UUID ID вопроса
answer_option_ids UUID[] Массив ID выбранных вариантов ответа (для множественного выбора)
answer_value text, nullable Текстовый ответ (для шкалы согласия, ранжирования)
answered_at timestamp Дата и время ответа
time_spent_ms integer Время на ответ в миллисекундах

Связи

  • TestAnswer → TestSession: ответ принадлежит одной сессии (session_id)
  • TestAnswer → TestQuestion: ответ на конкретный вопрос (question_id)
  • TestAnswer → TestAnswerOption: выбранные варианты ответа (answer_option_ids)

Где используется

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

TestResult (Результат теста)

Результат прохождения теста. Хранит информацию о завершённом тесте и сформированных результатах.

Механика расчёта не определена

Структура результата и методика расчёта требуют доработки. Необходимо определить:

  • Какие данные хранятся в результате
  • Как формируются рекомендации
  • Как визуализировать результат

См. ПрофСтарт — Цифровой профориентационный портрет.

Атрибуты

Поле Тип Описание
id UUID Уникальный идентификатор результата
session_id UUID ID сессии прохождения
user_id UUID ID пользователя (гостя или авторизованного) — всегда заполнен
age_group enum Возрастная группа теста
status enum Статус результата: draft, final
created_at timestamp Дата создания результата
expires_at timestamp, nullable Дата истечения (для отображения на терминале)

Поля результата не определены

Поля для хранения рассчитанных направлений, портрета, рекомендаций не определены. Требуется доработка механики расчёта.

Связи

  • TestResult → TestSession: результат принадлежит одной сессии (session_id)
  • TestResult → User: результат привязан к пользователю (user_id) — гостю или авторизованному

Где используется

  • ПрофСтарт — формирование результата после завершения теста
  • Цифровой профиль — отображение результатов в личном кабинете
  • Аналитика — анализ результатов тестирования