Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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: 3 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/)

---