Приложение для тестирования сотрудников клиники методом один вопрос - до пяти ответов один из которых правильный. Сотрудник должен выбрать правильный вариант ответа
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

12 KiB

Техническое задание

Система тестирования сотрудников клиники

Версия: 1.3 Дата: 2026-04-23 Статус: Согласовано


1. Назначение системы

Веб-приложение для проведения внутреннего тестирования сотрудников клиники. Руководители подразделений и HR-менеджер создают тесты и назначают их сотрудникам. Сотрудники проходят тесты в браузере. Система фиксирует все попытки и результаты.


2. Роли и права доступа

Роль Кто Создаёт тесты Назначает тесты Видит результаты
HR-менеджер Руководитель службы HR, Директор клиники Всем сотрудникам клиники Всех сотрудников
Руководитель подразделения Главный врач, рук. службы администраторов и др. Только своему подразделению Только своего подразделения
Сотрудник Все остальные работники Только свои

3. Авторизация

  • Вход по логину и паролю
  • Учётные записи создаются администратором системы вручную
  • Сессия хранится на сервере (cookie-based или JWT — определить при выборе стека)
  • Пароль хранится в зашифрованном виде (bcrypt или аналог)

4. Функциональные требования

4.1. Управление пользователями и подразделениями

  • Создание/редактирование/деактивация учётных записей сотрудников
  • Каждый сотрудник принадлежит одному подразделению
  • Создание/редактирование справочника подразделений
  • Назначение роли сотруднику: HR-менеджер / Руководитель подразделения / Сотрудник

4.2. Создание и редактирование тестов

Тест содержит:

  • Название теста
  • Описание (опционально)
  • Список вопросов (минимум 7)
  • Порог зачёта — минимальный % правильных ответов (задаётся автором)
  • Таймер прохождения — лимит в минутах (опционально)

Вопрос содержит:

  • Текст вопроса
  • Минимум 3 варианта ответа
  • Один или несколько правильных ответов (чекбокс или радио-кнопка в зависимости от типа)

Настройки теста (задаются автором при создании):

  • Разрешить возврат к предыдущему вопросу: да / нет

Правила работы с тестом (версионность):

  • Пока по тесту не было ни одной попытки, автор редактирует тест на месте — номер версии не меняется.
  • Как только появилась хотя бы одна попытка, любое сохранение изменений создаёт новую версию теста (version + 1, связь со старой версией через parent_id). Старая версия становится неактивной, но сохраняется в истории.
  • Все версии теста хранятся в виде связанной цепочки. Каждая попытка прохождения привязана к конкретной версии, по которой сотрудник проходил тест, — разбор ошибок по старым результатам остаётся корректным.
  • В списке тестов сотрудникам и авторам показывается только одна активная версия каждой цепочки.
  • Автор может открыть страницу истории версий теста и вручную переключить активную версию на любую из цепочки — остальные версии при этом автоматически становятся неактивными.
  • Тест можно деактивировать целиком (скрыть цепочку из списка, данные не удаляются).

4.3. Назначение теста

При назначении задаются:

  • Список получателей (отдел или конкретные сотрудники)
  • Срок сдачи — дата дедлайна (задаётся в днях от даты назначения или конкретной датой)
  • Допустимое количество попыток (1 или более — задаётся при назначении)

HR-менеджер может назначить тест сотрудникам любых подразделений. Руководитель подразделения — только сотрудникам своего подразделения.

4.4. Прохождение теста (интерфейс сотрудника)

  • На главной странице сотрудник видит список назначенных ему тестов со статусами:
    • Не начат — ещё не открывал
    • В процессе — начал, не завершил (если таймер — отсчёт продолжается)
    • Завершён — сдал/не сдал
    • Просрочен — дедлайн прошёл, не сдан
  • Если задан таймер — отображается обратный отсчёт, по истечении тест завершается автоматически
  • Порядок вопросов случайный при каждом прохождении
  • Возможность вернуться к предыдущему вопросу — определяется настройкой теста

4.5. Результаты после завершения теста

Сотрудник сразу после сдачи видит:

  • Итоговый балл и процент правильных ответов
  • Факт зачёта: сдал / не сдал (относительно порога)
  • Разбор ошибок: по каждому вопросу — его ответ и правильный ответ

4.6. Трекер попыток

Система фиксирует каждую попытку прохождения теста:

Поле Описание
Сотрудник ФИО, подразделение
Тест Название
Попытка № Порядковый номер попытки
Начало Дата и время начала
Завершение Дата и время окончания
Результат Количество правильных ответов / всего, %
Зачёт Да / Нет (преодолён ли порог)

Руководитель видит трекер по своему подразделению. HR-менеджер видит трекер по всей клинике. Сотрудник видит только свои попытки.

4.7. AI-помощник при создании и редактировании тестов

Интеграция с LLM (DeepSeek) доступна авторам тестов в форме создания и редактирования. AI работает на двух уровнях: над всем тестом целиком и над отдельным вопросом с блоком его вариантов ответов.

Функции уровня всего теста:

Функция Описание
Сгенерировать тест На основе названия теста AI генерирует готовый набор вопросов с вариантами ответов. Кнопка доступна только когда название теста заполнено; отдельный ввод темы не требуется. Результат показывается превью, автор применяет его целиком кнопкой «Применить все вопросы».
Проверить тест AI анализирует весь тест и выдаёт структурированные рекомендации по улучшению (чёткость формулировок, качество дистракторов, охват темы). Показывается в модальном окне.
Предложить вариант (улучшить весь тест) AI предлагает улучшенные формулировки всех вопросов и всех вариантов ответов. Результат отображается как постатейное сравнение (старая версия → новая) с чекбоксами — автор выбирает, какие изменения применить.

Функции уровня одного вопроса:

Функция Описание
Улучшить вопрос AI переформулирует выбранный вопрос и его варианты ответов более чётко и однозначно. Результат показывается в модале с постатейным сравнением и чекбоксами (вопрос + каждый вариант ответа отдельно), прямой замены без подтверждения не происходит.
Дистракторы AI генерирует 3 новых правдоподобных неправильных варианта ответа к вопросу; они добавляются к существующим, а не заменяют их.

Настройки:

  • API-ключ DeepSeek вводится на странице /settings и хранится в базе данных.
  • Страница настроек содержит кнопку «Проверить подключение» — выполняет тестовый запрос к API.
  • Ключ хранится только на бэкенде, на фронтенд не передаётся.
  • Все AI-функции требуют настроенного ключа: при его отсутствии возвращается понятная ошибка с предложением перейти в «Настройки».

5. Нефункциональные требования

Параметр Требование
Количество пользователей 50–200 человек
Платформа Веб-приложение, браузер (desktop-first)
Доступность Внутренняя сеть клиники
Язык интерфейса Русский
Время отклика < 2 секунды для основных операций

6. Уведомления

Уведомления реализуются в одном из последних спринтов.

  • Канал: мессенджер MAX
  • События для уведомления:
    • Сотруднику назначен новый тест
    • Приближается дедлайн сдачи теста
  • Интеграция с MAX API — отдельная задача спринта

7. Вне scope (не реализуем в данной версии)

  • Интеграция с AD/LDAP
  • Мобильное приложение
  • Вопросы с вложениями (изображения, видео)
  • Экспорт отчётов в Excel / PDF