Приложение для тестирования сотрудников клиники методом один вопрос - до пяти ответов один из которых правильный. Сотрудник должен выбрать правильный вариант ответа
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

ШАГ 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