API Rest desenvolvida para o desafio técnico da Lemon Energy
O desafio propôs uma aplicação Node para checar a elegibilidade de empresas para fazer parte da Lemon como cliente através dos dados contidos na conta de luz. Caso a empresa não seja elegível, precisamos explicitar os motivos para tal. Caso ela seja elegível, precisamos calcular também a projeção da quantidade de CO₂ que ela deixaria de emitir caso usasse energia limpa.
-
⚙️ Server: Node, Express
-
🧪 Test: Mocha, Chai
Aplicação foi desenvolvida com Node.js com o framework Express pensando nos princípios REST baseado na arquitetura MSC (model-service-controller) para validação de dados foi utilizado a biblioteca Joi e para garantir qualidade foram desenvolvidos testes utilizando Mocha e Chai.
POST /elegibilidade
Parâmetro | Tipo | Descrição |
---|---|---|
numeroDoDocumento |
string |
Required. Número do documento do solicitante sendo CPF ou CNPJ . |
tipoDeConexao |
string |
Required. Tipo de conexão sendo elas: monofasico , bifasico ou trifasico . |
classeDeConsumo |
string |
Required. Classe de consumo sendo elas: comercial , residencial , industrial , poderPublico ou rural . |
modalidadeTarifaria |
string |
Required. Modalidade Tarifaria sendo elas: branca , azul , verde ou convencional . |
historicoDeConsumo |
array |
Required. Histórico de consumo do último ano. Deve conter no minímo os últimos 3 meses de consumo. |
{
"numeroDoDocumento": "11284470000140",
"tipoDeConexao": "bifasico",
"classeDeConsumo": "comercial",
"modalidadeTarifaria": "convencional",
"historicoDeConsumo": [
3878, // mes atual
9760, // mes anterior
5976, // 2 meses atras
2797, // 3 meses atras
2481, // 4 meses atras
5731, // 5 meses atras
7538, // 6 meses atras
4392, // 7 meses atras
7859, // 8 meses atras
4160, // 9 meses atras
6941, // 10 meses atras
4597 // 11 meses atras
]
}
{
"elegivel": true,
"economiaAnualDeCO2": 5553.24,
}
{
"elegivel": false,
"razoesInelegibilidade": [
"Classe de consumo não aceita",
"Modalidade tarifária não aceita",
"Consumo muito baixo para tipo de conexão"
]
}
⚠️ Necessário ter node 16 e npm instalados na sua máquina!
Clone este repositório e entre na pasta do projeto
git clone [email protected]:ribeirofrv/desafio-backend-lemon.git
cd desafio-backend-lemon
Instale as dependências
npm install
Inicie o servidor
npm start
✳️ Por padrão o servidor usa a porta 3001 e pode ser alterada criando o arquivo .env
Para rodar os tests, certifique-se de estar dentro na pasta do projeto e com o servidor iniciado e então cole o seguinte comando em outra aba do terminal
npm test
- Deploy no Railway
- Densenvolver o front-end com um formulário para captação de clientes
- Fazer integração com um Banco de Dados para salvar clientes elegiveis