Skip to content

Repository files navigation

Projeto Amazon Scraper de Produtos Inteligentes

Node.js Express Axios JSDOM Vite TailwindCSS

📖 Sobre o projeto

O Amazon Scraper de Produtos Inteligentes é uma aplicação full stack desenvolvida em Node.js para coletar, tratar e exibir produtos da Amazon Brasil. A solução combina scraping estruturado, uma API REST e uma interface web responsiva para centralizar a pesquisa e a filtragem de produtos.

O projeto demonstra técnicas de Web Scraping, consumo e processamento de HTML, normalização de dados, desenvolvimento de APIs REST, observabilidade, cache, segurança e construção de interfaces modernas.

Arquitetura da Aplicação

Frontend (Vite + Tailwind CSS)
            ↓
API REST (Node.js + Express)
            ↓
Axios
            ↓
JSDOM
            ↓
Processamento e normalização dos dados
            ↓
Resposta JSON

O frontend consome a API e apresenta os produtos em uma grade responsiva. No backend, o Axios realiza as requisições HTTP, o JSDOM interpreta o conteúdo HTML e os dados coletados são normalizados antes do retorno em JSON.

O projeto depende da estrutura HTML de um serviço externo. Alterações realizadas pela Amazon podem exigir adaptações no processo de scraping.

Funcionalidades

Scraping e dados

  • Coleta automatizada de produtos da Amazon Brasil;
  • pesquisa por palavra-chave;
  • requisições HTTP realizadas com Axios;
  • parsing do HTML com JSDOM;
  • normalização e estruturação dos dados;
  • disponibilização dos resultados por uma API REST em JSON.

Filtros

  • Avaliação mínima;
  • faixa de preço mínimo e máximo;
  • exibição exclusiva de produtos Prime.

Interface

  • Layout responsivo e mobile-first;
  • grid de produtos;
  • scroll infinito para carregamento progressivo;
  • feedback visual durante carregamentos e erros;
  • modo escuro com persistência;
  • consumo da API por fetch;
  • painel de métricas em tempo real.

Observabilidade, desempenho e segurança

  • Cache em memória com TTL;
  • endpoint de Health Check;
  • endpoint de métricas;
  • monitoramento de requisições e scraping;
  • monitoramento de uptime, memória, cache hits e rate limiting;
  • limitação de requisições para mitigação de abuso;
  • cabeçalhos de segurança;
  • compressão das respostas;
  • registro de requisições;
  • validação dos parâmetros de entrada;
  • tratamento centralizado de erros e respostas padronizadas.

Endpoints

GET /api/health
GET /api/metrics
GET /api/scrape?keyword=produto

O parâmetro keyword define o termo utilizado na pesquisa dos produtos.

Screenshots

Interface principal

Interface principal do Amazon Product Scraper

Resultados e filtros

Resultados e filtros da aplicação

Visualização adicional

Visualização adicional da aplicação

Tecnologias

Backend

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

Frontend

  • Vite;
  • Tailwind CSS;
  • JavaScript.

Testes

  • Vitest;
  • JSDOM.

Como executar

Pré-requisitos

  • Git;
  • Node.js ^20.19.0 || >=22.12.0;
  • npm.

Clonar o repositório

git clone https://github.com/NatanLuz/amazon_scraper_fullstackAPI.git
cd amazon_scraper_fullstackAPI

Instalar as dependências

Na raiz, instale as dependências do backend e do frontend de forma reproduzível com os lockfiles:

npm run install-all

Para instalar separadamente, use npm run install-server e npm run install-client.

Executar o backend

Na raiz do projeto, execute:

npm start

A API ficará disponível em:

http://localhost:3000

Executar o frontend

Em outro terminal, execute:

cd client
npm run dev

A interface ficará disponível em:

http://localhost:5173

Build pela raiz

Para compilar o frontend e servi-lo pelo backend em http://localhost:3000:

npm run build
npm start

npm run build:prod reutiliza esse build sem instalar dependências. npm run deploy compila e inicia localmente; não publica em uma plataforma externa.

Verificação funcional

Após iniciar os dois serviços:

  1. Realize uma busca por palavra-chave;
  2. valide o retorno dos produtos pela API;
  3. aplique os filtros de preço, avaliação e Prime;
  4. verifique o funcionamento do scroll infinito;
  5. consulte as métricas em /api/metrics;
  6. repita uma requisição para verificar o funcionamento do cache.

📂 Estrutura do projeto

A aplicação separa o backend, o frontend e os testes automatizados:

amazon_scraper_fullstackAPI/
├── server/
├── client/
├── package.json
├── README.md
└── ...
  • server/: API REST, scraping, cache, observabilidade e middlewares;
  • client/: interface web desenvolvida com Vite e Tailwind CSS;
  • client/src/__tests__/: testes automatizados executados com Vitest (npm --prefix client test -- --run);
  • package.json: dependências e scripts do projeto;
  • README.md: documentação técnica.

👤 Autor

Natan Da Luz

📄 Licença

Este projeto está sem uma licença definida no momento.

About

aplicação full stack desenvolvida em Node.js para coletar, tratar e exibir produtos da Amazon Brasil. A solução combina scraping estruturado, uma API REST e uma interface web responsiva para centralizar a pesquisa e a filtragem de produtos.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages