Skip to content

Latest commit

 

History

History
227 lines (156 loc) · 4.46 KB

File metadata and controls

227 lines (156 loc) · 4.46 KB

Amazon Product Scraper Inteligente

Ache produtos mais baratos, com boas avaliações, e tudo isso filtrado !

Aplicação para coleta, filtragem e visualização de produtos da Amazon Brasil, desenvolvida com foco em scraping estruturado, performance, observabilidade e experiência do usuário.

Node.js Express Axios JSDOM Vite TailwindCSS


🎯 Proposta de Valor

Automatizar a descoberta de produtos com melhor custo-benefício na Amazon, centralizando coleta, filtragem e análise em uma única aplicação performática e observável.

Benefícios principais:

  • Coleta automatizada de produtos via scraping
  • Filtros inteligentes por avaliação, preço e Prime
  • Redução de esforço manual na comparação de produtos
  • Interface rápida e responsiva com feedback em tempo real
  • API monitorável com métricas de uso e saúde

⚙️ Funcionalidades

Scraping e Dados

  • Coleta de produtos via requisições HTTP (Axios)
  • Parsing de HTML com JSDOM
  • Normalização e estruturação de dados
  • Retorno padronizado via API REST (JSON)

Filtros Inteligentes

  • Avaliação mínima (rating)
  • Faixa de preço (mínimo e máximo)
  • Filtro de produtos Prime

Experiência do Usuário

  • Interface responsiva (mobile-first)
  • Scroll infinito para carregamento progressivo
  • Feedback visual de carregamento e erros
  • Modo escuro com persistência

Observabilidade

  • Métricas de requisição e scraping
  • Monitoramento de cache (cache hits)
  • Uptime da aplicação
  • Uso de memória
  • Rate limiting monitorado

🏗️ Arquitetura / Estrutura

Arquitetura baseada em separação clara entre frontend e API:

Frontend (Vite + Tailwind)
        │
        ▼
API (Node.js + Express)
        │
        ▼
HTTP Client (Axios)
        │
        ▼
Parsing DOM (JSDOM)
        │
        ▼
Normalização e retorno JSON

Backend (server/)

  • API REST (/api/scrape, /api/health, /api/metrics)

  • Scraping com Axios + JSDOM

  • Cache em memória com TTL

  • Middlewares de segurança e performance:

    • helmet
    • compression
    • morgan
    • express-rate-limit
  • Tratamento centralizado de erros

Frontend (client/)

  • Interface com Vite + Tailwind CSS
  • Consumo da API via fetch
  • Grid responsivo de produtos
  • Filtros dinâmicos
  • Painel de métricas em tempo real

🔐 Segurança

  • Rate limiting para mitigação de abuso
  • Headers de segurança via helmet
  • Validação de entrada de parâmetros
  • Cache para reduzir volume de requisições externas
  • Tratamento de erros e respostas padronizadas

Observação: o projeto depende de scraping de terceiros, podendo sofrer alterações caso a estrutura da Amazon seja modificada.


🧰 Stack Tecnológica

Backend

  • Node.js
  • Express
  • Axios
  • JSDOM
  • Helmet
  • Morgan
  • Compression
  • Express Rate Limit

Frontend

  • Vite
  • Tailwind CSS
  • JavaScript (Vanilla)

Testes

  • Vitest
  • JSDOM

🚀 Instalação

Pré-requisitos

  • Node.js 20+

Passos

git clone https://github.com/seu-usuario/amazon-scraper.git
cd amazon-scraper

npm install
npm run install-client

Execução (desenvolvimento)

Backend:

npm start

Frontend:

cd client
npm run dev

Acesse:


🧪 Testes Rápidos

Checklist funcional:

  1. Realizar busca por palavra-chave
  2. Validar retorno de produtos via API
  3. Aplicar filtros (preço, rating, Prime)
  4. Verificar funcionamento do scroll infinito
  5. Validar métricas em /api/metrics
  6. Testar cache (repetir requisições)

📡 Endpoints Principais

Health Check

GET /api/health

Métricas

GET /api/metrics

Scraping

GET /api/scrape?keyword=notebook

📸 Screenshots

Preview 1 Preview 2 Preview 3


👤 Autor

Natan Da Luz Desenvolvedor de Software