Об этом проекте

Game Sales Aggregator – это open‑source проект (указана лицензия MIT), который автоматически собирает текущие игровые предложения из нескольких цифровых магазинов и публикует их на статическом сайте и в Telegram‑канале. Развернутая версия доступна на GitHub Pages. Что отслеживается: бесплатные раздачи Epic Games (текущие и будущие), скидки в Epic Games Store, временно бесплатные предложения в Steam, горячие скидки Steam (от 5 %), а также новые поступления и ожидаемые добавления в Xbox Game Pass для PC. Функции сайта: поиск по названию игры с debounce 300 ms; фильтрация по категориям (Epic/Steam, бесплатные/со скидкой, новые игры Game Pass); сортировка по цене, проценту скидки или названию; фильтр диапазона цен; список желаемого, хранящийся в localStorage; история уведомлений за последние 30 дней; тёмная и светлая темы с переключателем в шапке; двуязычный интерфейс (украинский и английский); PWA‑режим с установкой на телефон или ПК и офлайн‑кешированием через Service Worker; SEO‑разметка — Open Graph, Twitter Cards, JSON‑LD, sitemap.xml. Как работает: по расписанию GitHub Actions (ежечасно) запускается скрипт, собирающий данные из API Steam, Epic Games и Xbox Game Pass. Затем обновляется deals.json в репозитории, генерируется sitemap.xml, собирается React‑приложение и деплоится на GitHub Pages, а новые скидки, раздачи и добавления отправляются в Telegram‑канал через Bot API. Технологии: React 19 + TypeScript + Vite + React Router; стили — vanilla CSS с эффектами glassmorphism; кастомная локализация через LocaleContext (uk.ts, en.ts); сбор данных — Node.js с tsx; PWA на основе vite-plugin-pwa и Service Worker; хостинг — GitHub Pages; автоматизация — GitHub Actions с cron‑запуском каждый час. Локальный запуск: требуется Node.js 20+ и npm. Предоставлены скрипты автоматической установки для Ubuntu/Debian (scripts/install.sh, включая режим --dev) и Windows (scripts/install.ps1, включая -Dev). Ручной путь — git clone, npm install, затем команды npm run fetch (получить данные), npm run dev (локальный сайт), npm run build (продакшн‑сборка), npm run lint, npm test. Сборка, тесты и деплой в CI выполняются на ubuntu-latest; приложение статическое, поэтому директорию dist/ можно разместить на любом веб‑сервере (nginx, Caddy и т.д.). Чтобы уведомления работали в GitHub Actions, добавьте секреты TELEGRAM_BOT_TOKEN и TELEGRAM_CHAT_ID в Settings → Secrets and variables → Actions. В README описано, как получить Chat ID канала: добавить бота администратором, отправить сообщение в канал и посмотреть ответ метода getUpdates. Структура репозитория охватывает workflow .github/workflows/scheduler.yml, данные public/data/deals.json, скрипты fetch-deals.ts и generate-sitemap.ts, компоненты (GameCard и секции Epic/Steam/Xbox), контексты (LocaleContext, WishlistContext), хуки (useDebounce, useInstallPWA, useLocalStorage), словари локализации, роутер App.tsx, DataContext для загрузки deals.json, Service Worker src/sw.ts и конфигурацию Vite с PWA. Проект также поддерживает публичный Telegram‑канал с уведомлениями о бесплатных играх, скидках и новых позициях Game Pass.