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 с ошибкой