Sobre o projeto

Game Sales Aggregator é um projeto de código aberto (licença MIT indicada) que coleta automaticamente as ofertas de jogos atuais de várias lojas digitais e as publica em um site estático e em um canal do Telegram. A versão implantada está disponível no GitHub Pages. O que é monitorado: giveaways gratuitos da Epic Games (atuais e futuros), descontos na Epic Games Store, ofertas temporariamente gratuitas na Steam, descontos quentes da Steam (a partir de 5%), além de novos lançamentos e adições previstas ao Xbox Game Pass para PC. Recursos do site: busca por título do jogo com debounce de 300 ms; filtragem por categorias (Epic/Steam, gratuito/descontado, novos jogos do Game Pass); ordenação por preço, percentual de desconto ou título; filtro por faixa de preço; lista de desejos armazenada no localStorage; histórico de notificações dos últimos 30 dias; temas escuro e claro com alternância no cabeçalho; interface bilíngue (ucraniano e inglês); modo PWA com instalação em telefone ou PC e cache offline via Service Worker; marcação SEO — Open Graph, Twitter Cards, JSON‑LD, sitemap.xml. Como funciona: em um agendamento do GitHub Actions (a cada hora), um script coleta dados das APIs da Steam, Epic Games e Xbox Game Pass. Em seguida, o deals.json no repositório é atualizado, o sitemap.xml é gerado, o app React é compilado e implantado no GitHub Pages, e novos descontos, giveaways e adições são enviados ao canal do Telegram via Bot API. Tecnologias: React 19 + TypeScript + Vite + React Router; estilos — CSS puro com efeitos de glassmorphism; localização personalizada via LocaleContext (uk.ts, en.ts); coleta de dados — Node.js com tsx; PWA baseada em vite-plugin-pwa e Service Worker; hospedagem — GitHub Pages; automação — GitHub Actions com cron horário. Execução local: é necessário Node.js 20+ e npm. Scripts de instalação automática são fornecidos para Ubuntu/Debian (scripts/install.sh, incluindo modo --dev) e Windows (scripts/install.ps1, incluindo -Dev). Caminho manual — git clone, npm install, depois os comandos npm run fetch (obter dados), npm run dev (site local), npm run build (compilação de produção), npm run lint, npm test. Build, testes e deploy no CI rodam em ubuntu-latest; o app é estático, portanto o diretório dist/ pode ser colocado em qualquer servidor web (nginx, Caddy, etc.). Para que as notificações funcionem no GitHub Actions, adicione os segredos TELEGRAM_BOT_TOKEN e TELEGRAM_CHAT_ID em Settings → Secrets and variables → Actions. O README descreve como obter o Chat ID do canal: adicione o bot como administrador, envie uma mensagem ao canal e veja a resposta do método getUpdates. A estrutura do repositório cobre o workflow .github/workflows/scheduler.yml, dados public/data/deals.json, scripts fetch-deals.ts e generate-sitemap.ts, componentes (GameCard e seções Epic/Steam/Xbox), contexts (LocaleContext, WishlistContext), hooks (useDebounce, useInstallPWA, useLocalStorage), dicionários de localização, router App.tsx, DataContext para carregar deals.json, Service Worker src/sw.ts e configuração do Vite com PWA. O projeto também mantém um canal público no Telegram com notificações sobre jogos gratuitos, descontos e novos itens do Game Pass.