docs: add technical specification and step 002 log
- 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>
This commit is contained in:
@@ -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
|
||||||
|
- Мобильное приложение
|
||||||
|
- Вопросы с вложениями (изображения, видео)
|
||||||
|
- Автоматическая генерация вопросов
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
# ШАГ 002 — Создание технического задания
|
||||||
|
|
||||||
|
**Дата:** 2026-03-21
|
||||||
|
**Контекст:** Мастер-класс по разработке системы тестирования сотрудников клиники.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Запрос
|
||||||
|
|
||||||
|
> переходим к следующему шагу: создание тз
|
||||||
|
|
||||||
|
В ходе диалога уточнены требования:
|
||||||
|
|
||||||
|
**О ролях:**
|
||||||
|
> разделение по ролям у нас устроено так: есть руководители подразделений, к примеру руководитель службы администраторов, главный врач, руководитель службы администраторов. это те сотрудники, которые создают тесты. каждый тест это не менее 7 вопросов и не менее трёх вариантов ответов на вопрос, один или несколько из которых правильные. руководители подразделений назначают свои тесты сотрудникам своих подразделений, при этом у меня, как у директора клиники есть руководитель службы HR, который может создать и назначить тест сотрудникам сразу же всех подразделений.
|
||||||
|
|
||||||
|
**О времени:**
|
||||||
|
> обычно мы даём время в днях на прохождение теста. но я подумал, и решил, что некоторые из тестов надо настроить на время.
|
||||||
|
|
||||||
|
**О результатах:**
|
||||||
|
> (выбрано: свой балл/%, свои ошибки)
|
||||||
|
> мы должны вести трекер всех попыток сдачи теста: какой сотрудник, какой тест, когда начал выполнение теста, когда закончил, с каким результатом. преодолел ли сотрудник заданный порог правильных ответов.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ответ
|
||||||
|
|
||||||
|
### Подход
|
||||||
|
|
||||||
|
Перед написанием ТЗ проведён диалог с заказчиком (директором клиники) для уточнения требований по ролям, формату теста, ограничениям по времени и логике результатов.
|
||||||
|
|
||||||
|
ТЗ сохранено в отдельный файл: `DOC/ТЗ.md`
|
||||||
|
|
||||||
|
### Ключевые решения, принятые в ТЗ
|
||||||
|
|
||||||
|
**Роли:**
|
||||||
|
- `HR-менеджер` — создаёт тесты и назначает их всем сотрудникам клиники
|
||||||
|
- `Руководитель подразделения` — создаёт тесты и назначает только своему подразделению
|
||||||
|
- `Сотрудник` — проходит назначенные тесты
|
||||||
|
|
||||||
|
**Формат теста:**
|
||||||
|
- Минимум 7 вопросов
|
||||||
|
- Минимум 3 варианта ответа на вопрос
|
||||||
|
- Один или несколько правильных ответов (смешанный тип)
|
||||||
|
- Порог зачёта — задаётся в % при создании теста
|
||||||
|
|
||||||
|
**Временны́е ограничения:**
|
||||||
|
- Срок сдачи — дедлайн в днях (обязательно при назначении)
|
||||||
|
- Таймер прохождения — лимит в минутах (опционально, настраивается в тесте)
|
||||||
|
|
||||||
|
**После завершения теста сотрудник видит:**
|
||||||
|
- Свой балл и процент
|
||||||
|
- Зачёт / незачёт
|
||||||
|
- Разбор ошибок (где ответил неверно и правильный ответ)
|
||||||
|
|
||||||
|
**Трекер попыток фиксирует:**
|
||||||
|
- Сотрудник, тест, № попытки
|
||||||
|
- Время начала и завершения
|
||||||
|
- Результат и факт зачёта
|
||||||
|
|
||||||
|
### Что создано
|
||||||
|
|
||||||
|
- `DOC/ТЗ.md` — полное техническое задание
|
||||||
|
|
||||||
|
### Открытые вопросы (зафиксированы в ТЗ)
|
||||||
|
|
||||||
|
Ряд деталей требует уточнения на следующих шагах:
|
||||||
|
- Роль директора клиники
|
||||||
|
- Редактирование теста после назначения
|
||||||
|
- Случайный или фиксированный порядок вопросов
|
||||||
|
- Возможность вернуться к предыдущему вопросу
|
||||||
|
- Уведомления о назначении и дедлайне
|
||||||
|
- Экспорт отчётов
|
||||||
|
|
||||||
|
### Следующие шаги
|
||||||
|
|
||||||
|
- [x] Написать ТЗ
|
||||||
|
- [ ] Обсудить и закрыть открытые вопросы из ТЗ
|
||||||
|
- [ ] Выбрать технологический стек
|
||||||
|
- [ ] Составить план спринтов
|
||||||
Reference in New Issue
Block a user