Esta API foi desenvolvida para facilitar o processo de escolha do fornecedor de energia pelos usuários. Com ela, os usuários podem informar seu consumo de energia e receber recomendações personalizadas de fornecedores com base em suas necessidades específicas.
Antes de iniciar, certifique-se de ter os seguintes requisitos instalados em sua máquina:
- Node.js: Versão 18.x ou superior Node.js Download
- npm: Gerenciador de pacotes padrão do Node.js
- Docker: Para rodar a aplicação e o banco de dados em containers Docker Download
As principais tecnologias utilizadas para o desenvolvimento desta API são:
- Node.js: Runtime JavaScript
- NestJS: Framework de desenvolvimento de APIs
- TypeScript: Superconjunto do JavaScript que adiciona tipagem estática
- Jest: Framework de testes
- Prisma: ORM (Object-Relational Mapping)
- PostgreSQL: Banco de dados relacional (rodando em um container Docker)
- Docker: Containerização do banco de dados
-
Clone o repositório para a sua máquina local:
git clone https://github.com/gabrielteodoroo/api-clarke
-
Acesse o diretório do projeto:
cd api-clarke
-
Instale as dependências:
npm install
-
Suba o container do banco de dados PostgreSQL e da aplicação com Docker:
docker-compose up -d
-
Renomeie o arquivo
.env-example
para.env
-
Configure o banco de dados executando as migrações:
npx prisma migrate dev
-
Após configurar o banco de dados e executar as migrações, você precisa rodar o comando para popular o banco com os fornecedores. Para isso, execute o seguinte comando:
npm run seed
Para iniciar a API em modo de desenvolvimento, utilize o comando:
npm run start:dev
O servidor será iniciado em http://localhost:5000
A API também está disponível em um ambiente de produção através do Render. Para acessá-la, utilize a seguinte URL: https://api-clarke.onrender.com Observação: Quando a API não está em uso, ela pode pausar automaticamente. Após acessar o link, pode ser necessário aguardar alguns segundos para que a API reinicie e fique disponível novamente.
- GET /suppliers Descrição: Retorna a lista de fornecedores recomendados com base no consumo de energia informado.
Parâmetros de query:
- kwh (obrigatório): O consumo de energia em kilowatt-hora (kWh) do usuário. Deve ser um valor numérico.
Exemplo de uso:
GET /suppliers?kwh=500
Respostas:
- 200 OK: Retorna a lista de fornecedores com base no consumo.
- 400 Bad Request: Caso o parâmetro kwh não seja fornecido ou não seja numérico.
Os testes de casos de uso foram implementados utilizando Jest. Para rodar os testes, utilize o comando:
npm run test
Os testes End-to-End (E2E), que testam os controllers da aplicação, podem ser executados com o comando:
npm run test:e2e
- Faça fork do projeto
- Crie uma nova branch com sua feature:
git checkout -b minha-feature
. - Faça commit das suas mudanças:
git commit -m 'Minha nova feature'
. - Envie para a branch principal:
git push origin minha-feature
. - Abra um Pull Request.