Initial commit

This commit is contained in:
Dmitry Bikulov
2025-09-11 13:42:53 +03:00
commit d1bb3559bb
9 changed files with 640 additions and 0 deletions

31
README.md Normal file
View File

@@ -0,0 +1,31 @@
Multiplication Table Trainer (FastAPI)
Запуск локально
- Установите зависимости: `pip install fastapi uvicorn`
- Запустите сервер: `uvicorn app.main:app --reload`
- Откройте в браузере: `http://127.0.0.1:8000/`
Docker
- Сборка: `docker build -t mult-trainer .`
- Запуск: `docker run --rm -p 8000:8000 mult-trainer`
- Переменная порта: `-e PORT=8000` (по умолчанию 8000)
Описание
- Кнопка «Старт» начинает сессию: 20 примеров, 60 секунд.
- На экране крупно показывается пример (например, «6 × 8») и 4 варианта ответа, один из которых правильный.
- Сервер проверяет ответы и ограничение по времени. По завершении показывается результат.
- В рамках одной сессии примеры не повторяются (исключены зеркальные дубли вида 6×8 и 8×6).
API
- POST `/api/session/start` → { session_id, total_questions, duration_seconds, remaining_seconds, question }
- POST `/api/session/{session_id}/answer` body: { answer } → { correct, finished, reason, remaining_seconds, score, question? }
- GET `/api/session/{session_id}/state` → текущее состояние (для возможного опроса)
Замечания
- Сессии хранятся в памяти процесса и сбрасываются при перезапуске.
- Диапазон множителей — от 2 до 9, ошибки сгенерированы правдоподобно (соседние произведения, небольшие смещения).