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