From 7ff7d9b1d0cbae6797fd097c2904747030358fe0 Mon Sep 17 00:00:00 2001 From: Aleksey Razorvin <> Date: Sat, 21 Mar 2026 11:20:22 +0500 Subject: [PATCH] docs: add technical specification and step 002 log MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create DOC/ТЗ.md with full system requirements - Add DOC/ШАГИ/ШАГ_2026-03-21_002.md with step log Co-Authored-By: Claude Sonnet 4.6 --- DOC/ТЗ.md | 141 ++++++++++++++++++++++++++ DOC/ШАГИ/ШАГ_2026-03-21_002.md | 80 +++++++++++++++ 2 files changed, 221 insertions(+) create mode 100644 DOC/ТЗ.md create mode 100644 DOC/ШАГИ/ШАГ_2026-03-21_002.md diff --git a/DOC/ТЗ.md b/DOC/ТЗ.md new file mode 100644 index 0000000..4794a4a --- /dev/null +++ b/DOC/ТЗ.md @@ -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 +- Мобильное приложение +- Вопросы с вложениями (изображения, видео) +- Автоматическая генерация вопросов diff --git a/DOC/ШАГИ/ШАГ_2026-03-21_002.md b/DOC/ШАГИ/ШАГ_2026-03-21_002.md new file mode 100644 index 0000000..8dd2b80 --- /dev/null +++ b/DOC/ШАГИ/ШАГ_2026-03-21_002.md @@ -0,0 +1,80 @@ +# ШАГ 002 — Создание технического задания + +**Дата:** 2026-03-21 +**Контекст:** Мастер-класс по разработке системы тестирования сотрудников клиники. + +--- + +## Запрос + +> переходим к следующему шагу: создание тз + +В ходе диалога уточнены требования: + +**О ролях:** +> разделение по ролям у нас устроено так: есть руководители подразделений, к примеру руководитель службы администраторов, главный врач, руководитель службы администраторов. это те сотрудники, которые создают тесты. каждый тест это не менее 7 вопросов и не менее трёх вариантов ответов на вопрос, один или несколько из которых правильные. руководители подразделений назначают свои тесты сотрудникам своих подразделений, при этом у меня, как у директора клиники есть руководитель службы HR, который может создать и назначить тест сотрудникам сразу же всех подразделений. + +**О времени:** +> обычно мы даём время в днях на прохождение теста. но я подумал, и решил, что некоторые из тестов надо настроить на время. + +**О результатах:** +> (выбрано: свой балл/%, свои ошибки) +> мы должны вести трекер всех попыток сдачи теста: какой сотрудник, какой тест, когда начал выполнение теста, когда закончил, с каким результатом. преодолел ли сотрудник заданный порог правильных ответов. + +--- + +## Ответ + +### Подход + +Перед написанием ТЗ проведён диалог с заказчиком (директором клиники) для уточнения требований по ролям, формату теста, ограничениям по времени и логике результатов. + +ТЗ сохранено в отдельный файл: `DOC/ТЗ.md` + +### Ключевые решения, принятые в ТЗ + +**Роли:** +- `HR-менеджер` — создаёт тесты и назначает их всем сотрудникам клиники +- `Руководитель подразделения` — создаёт тесты и назначает только своему подразделению +- `Сотрудник` — проходит назначенные тесты + +**Формат теста:** +- Минимум 7 вопросов +- Минимум 3 варианта ответа на вопрос +- Один или несколько правильных ответов (смешанный тип) +- Порог зачёта — задаётся в % при создании теста + +**Временны́е ограничения:** +- Срок сдачи — дедлайн в днях (обязательно при назначении) +- Таймер прохождения — лимит в минутах (опционально, настраивается в тесте) + +**После завершения теста сотрудник видит:** +- Свой балл и процент +- Зачёт / незачёт +- Разбор ошибок (где ответил неверно и правильный ответ) + +**Трекер попыток фиксирует:** +- Сотрудник, тест, № попытки +- Время начала и завершения +- Результат и факт зачёта + +### Что создано + +- `DOC/ТЗ.md` — полное техническое задание + +### Открытые вопросы (зафиксированы в ТЗ) + +Ряд деталей требует уточнения на следующих шагах: +- Роль директора клиники +- Редактирование теста после назначения +- Случайный или фиксированный порядок вопросов +- Возможность вернуться к предыдущему вопросу +- Уведомления о назначении и дедлайне +- Экспорт отчётов + +### Следующие шаги + +- [x] Написать ТЗ +- [ ] Обсудить и закрыть открытые вопросы из ТЗ +- [ ] Выбрать технологический стек +- [ ] Составить план спринтов