README.md

FastAPI Backend

Backend-часть игры “Монета” (Telegram-бот с механикой подбрасывания монеты, кастомизацией и прокачкой).
Реализована на FastAPI с JWT-аутентификацией, валидацией данных через Pydantic, асинхронными запросами к БД (Tortoise ORM + PostgreSQL), тестирование с Pytest.

👉 Ключевые функции:

  • Авторизация через Telegram WebApp (loginByInitData)
  • Механика подбрасывания монеты с энергосистемой и наградами
  • Ежедневные награды (стрик-система)
  • Покупка/активация кастомизаций (скины монет, фоны)
  • Прокачка характеристик (уровень, бонусы за серии побед)
  • Задания и достижения
  • Реферальная система

🛠 Технологии и подходы

Категория Технологии/Библиотеки
Backend FastAPI, Tortoise ORM, Pydantic, iogram 3+
База данных PostgreSQL (асинхронный доступ через asyncpg)
Аутентификация JWT (OAuth2PasswordBearer) + Refresh-токены
Валидация Pydantic (модели запросов/ответов + кастомные валидаторы)
Тестирование pytest (юнит-тесты, интеграционные тесты)
Документация Swagger UI (автогенерация из OpenAPI 3.1)
Архитектура REST API, слоистая структура (роутеры → сервисы → репозитории)

Оптимизации:

  • Асинхронные операции с БД для избежания блокировок
  • Валидация данных на уровне API перед сохранением в БД

📚 Документация API

Полная документация доступна в Swagger UI после запуска:

Основные эндпоинты

Метод Путь Описание
POST /users/loginByInitData Авторизация через Telegram WebApp
GET /users/claimDailyReward Получить ежедневную награду
POST /users/toss Подбросить монету (угадать сторону)
GET /customizations/ Список кастомизаций
POST /customizations/buy/{id} Купить кастомизацию
PUT /customizations/activate/{id} Активировать кастомизацию
GET /upgrades/ Список улучшений
PUT /upgrades/{type} Купить улучшение

Конфигурации:

  • Создать .env файл на основе .env.example (указать DATABASE_URL, JWT_SECRET и др.)
Конвейеры
0 успешных
0 с ошибкой