An open API service indexing awesome lists of open source software.

https://github.com/ikauematos/amazon-integration-sp-api

A system for querying and analyzing Amazon products, integrating with Amazon SP-API for accessing product data and web scraping to capture additional information. The project allows data to be exported to Excel spreadsheets, facilitating data analysis and organization.
https://github.com/ikauematos/amazon-integration-sp-api

amazon nestjs sp-api swagger typescript

Last synced: 2 months ago
JSON representation

A system for querying and analyzing Amazon products, integrating with Amazon SP-API for accessing product data and web scraping to capture additional information. The project allows data to be exported to Excel spreadsheets, facilitating data analysis and organization.

Awesome Lists containing this project

README

        

Amazon Logo

## šŸ›’ Amazon Product Scrapper

Um sistema para consulta e anĆ”lise de produtos da Amazon, integrando com a Amazon SP-API para acesso a dados de produtos e web scraping para captura de informaƧƵes adicionais. O projeto permite a exportação dos dados para planilhas Excel, facilitando a anĆ”lise e organização dos dados. šŸš€

---

### šŸ“œ ƍndice
* šŸ” VisĆ£o Geral
* šŸ› ļø Tecnologias Utilizadas
* šŸ”§ Ferramentas Adicionais
* šŸ“ˆ Funcionalidades
* šŸ” ServiƧo de Autenticação
* šŸ“ ServiƧo de Consulta
* šŸ–„ļø ServiƧo de Web Scraping
* šŸ’¾ ServiƧo de Exportação para Excel
* šŸ“Š Cobertura de Testes
* šŸ’» Como Rodar Localmente
* šŸŽÆ ContribuiƧƵes
* šŸ“ž Contato

---

## šŸ” VisĆ£o Geral
Este sistema permite a consulta a produtos da Amazon utilizando a **Amazon SP-API** para dados oficiais e um mecanismo de **web scraping** para capturar detalhes adicionais diretamente do site. Além de armazenar esses dados no banco de dados, o sistema gera relatórios em planilhas Excel, facilitando o acesso offline e a anÔlise dos produtos.

---

## šŸ› ļø Tecnologias Utilizadas
* **NestJS** (estrutura modular e escalƔvel)
* **TypeScript**
* **Docker** (containers e orquestração)
* **Prisma** (ORM para modelagem de banco de dados)
* **Amazon SP-API** (consulta de dados de produtos da Amazon)
* **ExcelJS** (geração e leitura de arquivos Excel)
* **Redis** (caching)
* **PostgreSQL** (banco de dados relacional)
* **Swagger** (documentação de APIs)

---

## šŸ”§ Ferramentas Adicionais
* **Jest** (testes unitÔrios e de integração)
* **Docker Compose** (gerenciamento de containers em ambientes de desenvolvimento e produção)
* **Bcrypt** (hash de senhas e autenticação)
* **OpenAPI (Swagger)** (para documentação e testes das APIs)
* **Axios** (para comunicação HTTP com APIs externas)

---

## šŸ“ˆ Funcionalidades
* **Consulta de Produtos via SP-API**: Permite consultar produtos diretamente da Amazon usando credenciais da Amazon SP-API.
* **Scraping de Produtos**: ObtƩm detalhes de produtos atravƩs de scraping de pƔginas da Amazon para capturar dados adicionais.
* **Geração de Planilhas Excel**: Exporta dados obtidos em formato Excel, facilitando o uso offline e anÔlises detalhadas.
* **Armazenamento em Banco de Dados**: Salva os dados em um banco de dados PostgreSQL para fƔcil acesso e futuras consultas.

---

## šŸ” ServiƧo de Autenticação
O sistema utiliza autenticação JWT para garantir que somente usuÔrios autenticados possam acessar as funcionalidades de consulta e scraping. A senha dos usuÔrios é armazenada de forma segura utilizando o Bcrypt.

---

## šŸ“ ServiƧo de Consulta
Realiza a comunicação com a Amazon SP-API para buscar informações de produtos, como título, preço e descrição, que são retornados pela API oficial e salvos no banco de dados.

---

## šŸ–„ļø ServiƧo de Web Scraping
Para obter informações não disponíveis na API oficial, o serviço de scraping realiza consultas diretamente nas pÔginas dos produtos na Amazon, capturando dados como avaliações, descrição detalhada e imagens adicionais.

---

## šŸ’¾ ServiƧo de Exportação para Excel
Utilizando a biblioteca ExcelJS, este serviço cria planilhas a partir dos dados obtidos, permitindo uma visualização prÔtica e organizada. A exportação é feita para o formato XLSX, com cabeçalhos bem definidos e estilizados para melhor apresentação.

---

## šŸ“Š Cobertura de Testes
* **Testes UnitÔrios**: Implementados com Jest para garantir a confiabilidade dos principais componentes, como a autenticação e a integração com a Amazon SP-API.
* **Testes de Integração**: Focados na interação entre diferentes módulos e serviços, especialmente a integração com a SP-API e o serviço de scraping.

---

## šŸ’» Como Rodar Localmente
1. **PrƩ-requisitos**:
* Docker e Docker Compose instalados
* Credenciais da Amazon SP-API configuradas

2. **Instalar DependĆŖncias**:
```bash
npm install
```

3. **Configurar VariƔveis de Ambiente**:
Crie um arquivo `.env` na raiz do projeto e defina as variƔveis necessƔrias, como as credenciais da SP-API, as configuraƧƵes do banco de dados e a chave secreta JWT.

4. **Iniciar o Docker Compose**:
```bash
docker-compose up -d
```

5. **Iniciar o Servidor**:
```bash
npm run start:dev
```

6. **Acessar o Swagger para Documentação**:
Acesse `http://localhost:3000/api` para explorar a documentação da API e testar os endpoints.

---

## šŸŽÆ ContribuiƧƵes
Contribuições são bem-vindas! Se encontrar bugs ou desejar implementar novas funcionalidades, abra um **Pull Request** ou **Issue**.

**Como Contribuir**:
1. Faça um fork do repositório.
2. Crie uma branch: `git checkout -b feature/nova-funcionalidade`.
3. FaƧa suas alteraƧƵes e adicione commits.
4. Envie um Pull Request.

---

## šŸ“ž Contato
Para dúvidas ou sugestões, entre em contato:

**Email**: [email protected]
**LinkedIn**: [ikauematos](https://www.linkedin.com/in/ikauematos/)

---