Este projeto é uma solução para o teste técnico da Pill, consistindo em um crawler que consulta dados de produtos do site da Drogasil e disponibiliza esses dados através de uma API. Uma interface frontend também é fornecida para mostrar esses dados.
- Node >= v16.16.0
- Yarn >= v1.22.21
- NPX >= v8.11.0
- MySQL >= v8.0.25
- Docker >= v24.0.7
- Docker Compose >= v2.10.0
Antes de iniciar a aplicação, é necessário configurar as variáveis de ambiente:
- Renomeie o arquivo
.env_example
para.env
. - Preencha as variáveis de ambiente no arquivo
.env
com os valores apropriados.
- Na raiz do projeto, execute
yarn install
para instalar as dependências. - Crie a base de dados
crawler_db_dev
no MySQL. - Entre na pasta
packages/backend
e executenpx sequelize-cli db:migrate
. - Execute
yarn dev
para rodar o projeto. - O backend estará disponível na porta
4000
.
- Em um novo terminal, navegue até
packages/frontend
. - Execute
yarn start
. - Acesse
http://localhost:3000/product?url=https://www.drogasil.com.br/neosaldina-30-drageas.html
.
- Na raiz do projeto, execute
docker-compose up -d
. - Acesse
http://localhost:3000/product?url=https://www.drogasil.com.br/neosaldina-30-drageas.html
.
- Na raiz do projeto, execute
yarn workspace @crawler/backend test
para rodar os testes unitários do backend.
- Na raiz do projeto, execute
yarn workspace @crawler/frontend test
para rodar os testes unitários do frontend.
A documentação completa da API está disponível através do Swagger UI.
Para acessar a documentação, inicie o servidor e visite http://localhost:4000/api-docs
no seu navegador.
A documentação do Swagger oferece uma visão detalhada de todos os endpoints da API, incluindo os parâmetros esperados, os formatos de resposta e os códigos de status.
Para um exemplo rápido de uso da API, você pode acessar:
[GET] http://localhost:4000/api/product?url=https://www.drogasil.com.br/neosaldina-30-drageas.html
Este exemplo demonstra como consultar dados de um produto específico do site da Drogasil.