Skip to content
Dev-i-antPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Dota 2 Case Opening - Telegram Mini App

Это современное Telegram Mini App (TMA) для открытия кейсов со скинами Dota 2, построенное на стеке Next.js 14 и Docker.

🚀 Основные возможности

🎮 Игровой процесс

  • Открытие кейсов: Реалистичная рулетка с плавной анимацией (Framer Motion).
  • Честный RNG: Вероятность выпадения предметов основывается на весах, настраиваемых в админ-панели.
  • Инвентарь: Управление выигрышами (Продажа за BP, Вывод, Просмотр истории).
  • Массовая продажа: Функция "Продать всё" для быстрой очистки инвентаря.
  • Дневные награды: Система ежедневных бонусов и заданий.
  • Лидерборд: Глобальный рейтинг игроков по количеству BP.
  • Реферальная система 2.0:
    • Прямые бонусы (500-1500 BP) за регистрацию при приглашении.
    • 10% комиссия от стоимости каждого кейса, открытого другом.
    • Детальная статистика по каждому другу с учетом всей истории транзакций.
    • Поддержка реферальных кодов и прямых ссылок.

🛠 Админ-панель (Полный контроль)

  • Управление кейсами: Создание, редактирование цен, цветов и редкости.
  • Библиотека предметов: Глобальный репозиторий предметов для быстрого добавления в кейсы.
  • Гибкая настройка: Изменение шансов выпадения и цен выкупа для каждого предмета.

🎨 Интерфейс и UX

  • Две темы:
    • Classic (Steam 2003): Ретро-стиль с тактильным откликом и объемными кнопками.
    • Dark (Dota Style): Современный темный интерфейс.
  • Тактильный отклик: Интеграция Telegram Haptic Feedback на ключевых действиях.
  • Native Navigation: Полная поддержка нативной кнопки "Назад" в Telegram.
  • Безопасность: Блокировка системного зума и контекстных меню для ощущения нативного приложения.

🛠 Технологический стек

  • Frontend: Next.js 14 (App Router), Tailwind CSS, Framer Motion.
  • Backend: Server Actions, Prisma ORM.
  • Database: SQLite (для локальной разработки и легкого деплоя).
  • Bot: Node.js скрипт для интеграции с Telegram API.
  • Infrastructure: Docker & Docker Compose.

📦 Быстрый запуск (локально через Docker)

  1. Клонируйте репозиторий.
  2. Создайте файл .env на основе следующих данных:
    # Токен Telegram-бота (используется для валидации initData на сервере)
    BOT_TOKEN=ваш_токен_бота
    TELEGRAM_BOT_TOKEN=ваш_токен_бота
    
    # Ключ Market API
    MARKET_API_KEY=ваш_market_api_key
    
    # Cloudflare Tunnel token (если используете tunnel сервис)
    TUNNEL_TOKEN=ваш_cloudflare_tunnel_token
    
    # Ссылка на Telegram-канал (опционально, для кнопки в боте)
    TELEGRAM_CHANNEL_URL=
    
    # Список Telegram ID супер-админов через запятую (без пробелов)
    # Пример: SUPER_ADMIN_IDS=123456789,987654321
    SUPER_ADMIN_IDS=
    
    DATABASE_URL="file:./dev.db"
    NEXT_PUBLIC_APP_URL=ваш_cloudflare_url
  3. Если у вас есть доступ к админке, обязательно заполните SUPER_ADMIN_IDS:
    • укажите только числовые Telegram ID;
    • несколько ID разделяйте запятой;
    • не храните персональные ID в коде, только в .env.
  4. Запустите проект:
    docker-compose up -d --build

🔒 Security-check перед публикацией

  • Убедитесь, что в репозитории нет реальных значений токенов (BOT_TOKEN, TELEGRAM_BOT_TOKEN, MARKET_API_KEY, TUNNEL_TOKEN).
  • Все секреты должны храниться только в локальном .env (файл уже игнорируется через .gitignore).
  • Если токен когда-то попал в Git, его нужно отозвать/пересоздать у провайдера.

🧰 Полезные скрипты

  • Проверка баланса Market API: npm run script:market-balance
  • Очистка инвентарей пользователей: npm run script:db-clear-inventories
  • Создание тестового кейса: npm run script:db-seed-test-case
  • Обновление Dota кейсов: npm run script:db-update-dota-cases
  • Добавление тестового предмета: npm run script:db-add-test-item
  • Обновление цены тестового предмета: npm run script:db-update-test-item-price

© Copyright

  • Автор: Dev-i-ant
  • При использовании проекта сохраняйте copyright и текст лицензии MIT.

Проект будет доступен внутри Telegram через ваш туннель или домен.


Разработано с использованием передовых практик Next.js и Telegram WebApp API.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages