32 lines
1.8 KiB
Markdown
32 lines
1.8 KiB
Markdown
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, ошибки сгенерированы правдоподобно (соседние произведения, небольшие смещения).
|