Uma API REST que monitora preços de produtos da Amazon e envia um e-mail de alerta automaticamente quando o preço cai abaixo do valor desejado pelo usuário.
- Node.js + TypeScript
- Express
- Prisma ORM + PostgreSQL
- Cheerio + Axios — Web scraping
- Nodemailer — Envio de e-mails
- node-cron — Agendamento de tarefas
- Zod — Validação de dados
- Bcrypt — Criptografia de senhas
- Docker — Banco de dados em container
- O usuário se cadastra e registra produtos da Amazon com um preço desejado
- A cada 5 horas, um job automático verifica o preço atual de cada produto via scraping
- Se o preço atual estiver abaixo do desejado, o usuário recebe um e-mail de alerta com os detalhes e a imagem do produto
- O sistema evita spam: um novo e-mail só é enviado se passaram pelo menos 5 horas desde o último
- Node.js 18+
- Docker
git clone https://github.com/rafaelAmora/pricemonitor.git
cd pricemonitornpm installCrie um arquivo .env na raiz:
DATABASE_URL="postgresql://postgres:Brasil@031025@localhost:5432/priceMonitor"
PORT=3333
# Conta Gmail usada para enviar os alertas
USER_EMAIL=seuemail@gmail.com
USER_PASSWORD=sua_senha_de_app💡 Para o Gmail funcionar, você precisa gerar uma senha de app nas configurações de segurança da conta Google.
docker-compose up -dnpx prisma migrate devnpm run devO servidor estará em http://localhost:3333.
| Método | Rota | Descrição |
|---|---|---|
POST |
/user |
Cria um novo usuário |
{
"name": "Rafael",
"email": "rafael@email.com",
"password": "senha123"
}| Método | Rota | Descrição |
|---|---|---|
POST |
/product |
Cadastra um produto para monitorar |
{
"url": "https://www.amazon.com.br/dp/...",
"nome": "Teclado Mecânico",
"precoDesejado": 250.00,
"usuarioId": "uuid-do-usuario"
}
⚠️ Atualmente apenas URLs da Amazon Brasil (amazon.com.br) são suportadas.
Quando o preço cai abaixo do desejado, o usuário recebe um e-mail com:
- Preço atual e preço desejado
- Imagem do produto
- Aviso para não perder a oferta
npm run build
npm start- Cadastro de usuários
- Cadastro de produtos para monitorar
- Scraping de preços da Amazon
- Envio de e-mail de alerta
- Job automático a cada 5 horas
- Autenticação com JWT
- Suporte a outros e-commerces (Mercado Livre, Magazine Luiza...)
- Rota para listar/deletar produtos monitorados
- Dashboard de histórico de preços
Feito por rafaelAmora