Game Deal consiste de um web scrapper que coleta o preço de mais de 3 mil jogos do Steam, Nuuvem e Green Man Gaming diariamente e envia notificações a cada queda de preço. Os dados coletados formam um histórico de preços que pode ser acessado por meio de uma API REST ou aplicação web.
Os scrapers e notificador rodam em filas que usam Redis e BullMQ, enquanto a API é construída com Fastify e o Frontend com VueJS e TailwindCSS.
- Gerenciador de pacotes pnpm.
- Docker e Compose plugin ou:
- Um banco de Dados MySQL para armazenamento do dados.
- Um banco de Dados Redis para as filas.
- Um Token de Bot do Telegram.
- O ID do chat onde as notificações serão enviadas.
- Clone o projeto para sua máquina
git clone https://github.com/JorgeLNJunior/GameDeal.git
. - Instale as dependências
pnpm i
. - Crie um arquivo
.env
dentro de cada diretório dentro de /apps e copie o conteúdo dos arquivos.env.example
substituindo os valores. - Execute
pnpm docker:up
para subir os container de MySQL, Redis e Redis UI. - Execute
pnpm start:watch
para iniciar todas as aplicações epnpm test
para executar os testes. Os comandos também podem ser executados somente em um workspace usandopnpm start:workspace:watch
, por exemplo,pnpm start:backend:watch
.
Projeto sob a licença GPL-3.0 ».