9.6 KiB
Техническое задание
Система тестирования сотрудников клиники
Версия: 1.2 Дата: 2026-03-21 Статус: Согласовано
1. Назначение системы
Веб-приложение для проведения внутреннего тестирования сотрудников клиники. Руководители подразделений и HR-менеджер создают тесты и назначают их сотрудникам. Сотрудники проходят тесты в браузере. Система фиксирует все попытки и результаты.
2. Роли и права доступа
| Роль | Кто | Создаёт тесты | Назначает тесты | Видит результаты |
|---|---|---|---|---|
| HR-менеджер | Руководитель службы HR, Директор клиники | ✅ | Всем сотрудникам клиники | Всех сотрудников |
| Руководитель подразделения | Главный врач, рук. службы администраторов и др. | ✅ | Только своему подразделению | Только своего подразделения |
| Сотрудник | Все остальные работники | ❌ | ❌ | Только свои |
3. Авторизация
- Вход по логину и паролю
- Учётные записи создаются администратором системы вручную
- Сессия хранится на сервере (cookie-based или JWT — определить при выборе стека)
- Пароль хранится в зашифрованном виде (bcrypt или аналог)
4. Функциональные требования
4.1. Управление пользователями и подразделениями
- Создание/редактирование/деактивация учётных записей сотрудников
- Каждый сотрудник принадлежит одному подразделению
- Создание/редактирование справочника подразделений
- Назначение роли сотруднику: HR-менеджер / Руководитель подразделения / Сотрудник
4.2. Создание и редактирование тестов
Тест содержит:
- Название теста
- Описание (опционально)
- Список вопросов (минимум 7)
- Порог зачёта — минимальный % правильных ответов (задаётся автором)
- Таймер прохождения — лимит в минутах (опционально)
Вопрос содержит:
- Текст вопроса
- Минимум 3 варианта ответа
- Один или несколько правильных ответов (чекбокс или радио-кнопка в зависимости от типа)
Настройки теста (задаются автором при создании):
- Разрешить возврат к предыдущему вопросу: да / нет
Правила работы с тестом:
- Автор может редактировать тест пока никто его не проходил
- Если тест уже проходили — создаётся новая версия (
version + 1), старая сохраняется - Все версии теста хранятся; результаты привязаны к конкретной версии
- Активная версия — та, которую видят сотрудники; автор может вручную переключить активную версию
- Тест можно деактивировать (скрыть из списка, не удалять)
4.3. Назначение теста
При назначении задаются:
- Список получателей (отдел или конкретные сотрудники)
- Срок сдачи — дата дедлайна (задаётся в днях от даты назначения или конкретной датой)
- Допустимое количество попыток (1 или более — задаётся при назначении)
HR-менеджер может назначить тест сотрудникам любых подразделений. Руководитель подразделения — только сотрудникам своего подразделения.
4.4. Прохождение теста (интерфейс сотрудника)
- На главной странице сотрудник видит список назначенных ему тестов со статусами:
Не начат— ещё не открывалВ процессе— начал, не завершил (если таймер — отсчёт продолжается)Завершён— сдал/не сдалПросрочен— дедлайн прошёл, не сдан
- Если задан таймер — отображается обратный отсчёт, по истечении тест завершается автоматически
- Порядок вопросов случайный при каждом прохождении
- Возможность вернуться к предыдущему вопросу — определяется настройкой теста
4.5. Результаты после завершения теста
Сотрудник сразу после сдачи видит:
- Итоговый балл и процент правильных ответов
- Факт зачёта: сдал / не сдал (относительно порога)
- Разбор ошибок: по каждому вопросу — его ответ и правильный ответ
4.6. Трекер попыток
Система фиксирует каждую попытку прохождения теста:
| Поле | Описание |
|---|---|
| Сотрудник | ФИО, подразделение |
| Тест | Название |
| Попытка № | Порядковый номер попытки |
| Начало | Дата и время начала |
| Завершение | Дата и время окончания |
| Результат | Количество правильных ответов / всего, % |
| Зачёт | Да / Нет (преодолён ли порог) |
Руководитель видит трекер по своему подразделению. HR-менеджер видит трекер по всей клинике. Сотрудник видит только свои попытки.
4.7. AI-помощник при создании и редактировании тестов
Интеграция с LLM (DeepSeek) доступна авторам тестов в форме создания и редактирования.
Функции AI-помощника:
| Функция | Описание |
|---|---|
| Генерация теста | Автор вводит тему — AI генерирует готовый набор вопросов с вариантами ответов |
| Улучшение формулировки | AI переформулирует выбранный вопрос более чётко и однозначно |
| Добавление дистракторов | AI генерирует правдоподобные неправильные варианты ответов к вопросу |
| Проверка качества | AI анализирует весь тест и выдаёт рекомендации по улучшению |
Настройки:
- API-ключ DeepSeek вводится на странице
/settingsи хранится в базе данных - Страница настроек содержит кнопку «Проверить подключение» — выполняет тестовый запрос к API
- Ключ хранится только на бэкенде и не передаётся на фронтенд
5. Нефункциональные требования
| Параметр | Требование |
|---|---|
| Количество пользователей | 50–200 человек |
| Платформа | Веб-приложение, браузер (desktop-first) |
| Доступность | Внутренняя сеть клиники |
| Язык интерфейса | Русский |
| Время отклика | < 2 секунды для основных операций |
6. Уведомления
Уведомления реализуются в одном из последних спринтов.
- Канал: мессенджер MAX
- События для уведомления:
- Сотруднику назначен новый тест
- Приближается дедлайн сдачи теста
- Интеграция с MAX API — отдельная задача спринта
7. Вне scope (не реализуем в данной версии)
- Интеграция с AD/LDAP
- Мобильное приложение
- Вопросы с вложениями (изображения, видео)
- Экспорт отчётов в Excel / PDF