Browse Source
- Create DOC/ТЗ.md with full system requirements - Add DOC/ШАГИ/ШАГ_2026-03-21_002.md with step log Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>master
2 changed files with 221 additions and 0 deletions
@ -0,0 +1,141 @@
|
||||
# Техническое задание |
||||
## Система тестирования сотрудников клиники |
||||
|
||||
**Версия:** 1.0 |
||||
**Дата:** 2026-03-21 |
||||
**Статус:** Черновик |
||||
|
||||
--- |
||||
|
||||
## 1. Назначение системы |
||||
|
||||
Веб-приложение для проведения внутреннего тестирования сотрудников клиники. Руководители подразделений и HR-менеджер создают тесты и назначают их сотрудникам. Сотрудники проходят тесты в браузере. Система фиксирует все попытки и результаты. |
||||
|
||||
--- |
||||
|
||||
## 2. Роли и права доступа |
||||
|
||||
| Роль | Кто | Создаёт тесты | Назначает тесты | Видит результаты | |
||||
|------|-----|:---:|:---:|:---:| |
||||
| **HR-менеджер** | Руководитель службы 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. Открытые вопросы (требуют уточнения) |
||||
|
||||
- [ ] Роль Директора клиники — отдельная роль или HR-менеджер? |
||||
- [ ] Можно ли редактировать тест после назначения (версионирование)? |
||||
- [ ] Порядок вопросов — фиксированный или случайный? |
||||
- [ ] Можно ли сотруднику вернуться к предыдущему вопросу в ходе теста? |
||||
- [ ] Нужны ли уведомления (email / внутри системы) о назначении теста и дедлайне? |
||||
- [ ] Нужен ли экспорт отчётов (Excel / PDF)? |
||||
|
||||
--- |
||||
|
||||
## 7. Вне scope (не реализуем в данной версии) |
||||
|
||||
- Интеграция с AD/LDAP |
||||
- Мобильное приложение |
||||
- Вопросы с вложениями (изображения, видео) |
||||
- Автоматическая генерация вопросов |
||||
Loading…
Reference in new issue