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