You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.5 KiB
2.5 KiB
ШАГ 013 — Спринт 5: Трекер результатов
Дата: 2026-03-21 Контекст: Мастер-класс по разработке системы тестирования сотрудников клиники.
Запрос
Оставляем текущий спринт. Введём user_id здесь вручную — пусть это будет гость.
Реализовано
Страница трекера всех попыток с фильтрацией и пагинацией. Все попытки пока принадлежат одному пользователю — «Гость» (user_id = 1).
Новые файлы
backend/alembic/versions/005_attempt_user.py ← добавляет user_id в test_attempts
frontend/src/pages/Tracker/index.tsx ← страница /tracker
Изменённые файлы
backend/app/models/attempt.py ← поле user_id (default=1, server_default='1')
backend/app/schemas/attempt.py ← AttemptListItem, AttemptListResponse
backend/app/api/attempts.py ← GET /api/attempts + GUEST_USER_ID/NAME константы
frontend/src/api/attempts.ts ← AttemptListItem, AttemptListResponse, list()
frontend/src/App.tsx ← роут /tracker, кнопка «Трекер» в шапке
API эндпоинты (новые)
| Метод | URL | Параметры | Описание |
|---|---|---|---|
| GET | /api/attempts |
test_id, date_from, date_to, page, page_size | Список завершённых попыток |
Схема БД (изменено)
test_attempts
+ user_id INTEGER NOT NULL DEFAULT 1
Технический долг (Sprint 6)
user_id = 1→ заменить на ID из JWT токенаGUEST_USER_NAME→ JOIN с таблицей users- Все эндпоинты открыты → добавить JWT Middleware
Следующие шаги
- Спринт 1: Инфраструктура + Создание тестов
- Спринт 2: Прохождение теста + результат
- Спринт 3: Редактирование + версионность
- Спринт 4: AI-помощник (DeepSeek)
- Спринт 5: Трекер результатов
- Спринт 6: Авторизация и роли
- Спринт 7: Уведомления в MAX