ПрофСтарт (профориентационный тест)¶
Описание сущностей для профориентационного теста школьника.
Используется в модуле: ПрофСтарт.
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) — гостю или авторизованному
Где используется¶
- ПрофСтарт — формирование результата после завершения теста
- Цифровой профиль — отображение результатов в личном кабинете
- Аналитика — анализ результатов тестирования