Многопользовательская онлайн-игра "Крестики-нолики" с поддержкой WebSocket для реального времени.
- Многопользовательская игра в реальном времени
- Аутентификация через JWT
- WebSocket соединения для мгновенных обновлений
- Система матчмейкинга
- История игр
- Статистика игроков
- Backend: Python 3.9+
- Framework: Starlette
- Database: SQLite (aiosqlite)
- WebSocket: Starlette WebSockets
- Authentication: JWT
- Containerization: Docker
- Web Server: Nginx
- API Documentation: OpenAPI/Swagger
- Клонируйте репозиторий:
git clone https://github.com/yourusername/tic-tac-toe.git
cd tic-tac-toe- Создайте виртуальное окружение:
python -m venv venv
source venv/bin/activate # Linux/Mac
.\venv\Scripts\activate # Windows- Установите зависимости:
pip install -r requirements.txtpython main.pydocker-compose up --buildtic-tac-toe/
├── config/ # Конфигурационные файлы
├── nginx/ # Nginx конфигурация
├── src/ # Исходный код
│ ├── middleware/ # Middleware компоненты
│ ├── models/ # Модели данных
│ ├── routes/ # API маршруты
│ └── services/ # Бизнес-логика
├── static/ # Статические файлы
├── templates/ # HTML шаблоны
├── docker-compose.yaml
├── Dockerfile
└── requirements.txt
Создайте файл .env в корневой директории:
DEBUG=True
SECRET_KEY=your-secret-key
CORS_ALLOWED_HOSTS=["*"]
DATABASE_URL=sqlite:///./game.dbpytest- Для продакшена используйте
docker-compose.prod.yml - Все WebSocket соединения требуют JWT токен
- База данных автоматически создается при первом запуске
- Nginx настроен для проксирования WebSocket соединений
MIT