Приложение для тестирования сотрудников клиники методом один вопрос - до пяти ответов один из которых правильный. Сотрудник должен выбрать правильный вариант ответа
You can not select more than 25 topicsTopics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Backend:
- Models: TestAttempt, AttemptAnswer (migration 002)
- POST /api/attempts: start attempt, shuffle questions/answers,
hide is_correct, expose is_multiple for UI hints
- POST /api/attempts/{id}/submit: save answers, calculate score,
strict matching (selected == correct), return full result
- GET /api/attempts/{id}/result: fetch saved result
- Register attempts router in main.py
Frontend:
- api/attempts.ts: types + API functions
- TestTake page: one question at a time, progress bar, timer
with auto-submit, back navigation controlled by test setting,
radio/checkbox based on is_multiple
- AttemptResult page: score, pass/fail, per-question breakdown
with correct/selected/missed answer highlighting
- App.tsx: add /tests/:testId/take and /attempts/:id/result routes
- TestDetail: add "Пройти тест" button
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
QA Test App — Система тестирования сотрудников клиники
Веб-приложение для проведения внутреннего тестирования сотрудников. Руководители подразделений создают тесты, назначают их сотрудникам, система фиксирует результаты.
Проект разрабатывается как мастер-класс для джуниор-разработчиков. История разработки — пошаговые запросы и решения — сохраняется в DOC/ШАГИ/.
Формат тестирования
Вопрос + минимум 3 варианта ответа (один или несколько правильных)
Минимум 7 вопросов в тесте
Случайный порядок вопросов при каждом прохождении
Опциональный таймер на прохождение
Порог зачёта задаётся автором теста (%)
Роли
Роль
Возможности
HR-менеджер / Директор
Создаёт тесты, назначает всем сотрудникам клиники, видит все результаты
Руководитель подразделения
Создаёт тесты, назначает только своему отделу, видит результаты своего отдела
Сотрудник
Проходит назначенные тесты, видит свои результаты и ошибки
Стек
Слой
Технология
Backend
Python 3.12 + FastAPI + SQLAlchemy 2.0 + Alembic
База данных
PostgreSQL 16
Frontend
React 18 + TypeScript + Vite + Ant Design + TanStack Query
Инфраструктура
Docker Compose + Nginx
Уведомления
Мессенджер MAX (Спринт 5)
План спринтов
Спринт
Содержание
1
Инфраструктура (Docker, FastAPI, React, PostgreSQL) + создание тестов
2
Прохождение теста + результаты и разбор ошибок
3
Трекер результатов
4
Авторизация, роли, подразделения, управление пользователями