Sugestão para o back-end de um: sistema de análise de crédito. Projeto que tive o prazer em desenvolver para avaliação do tqi_evolution_backend_2021 da TQI 🧡💛.
- Java JDK 11
- IDE IntelliJ
- Documentação e consumo no Swagger, Postman e Insomnia
- Security - JWT e Spring Security
- Testes - Junit, MockMVC e Rest-Assured
- Banco de Dados MySQL
- Estrutura - spring initializr
🔸 Visão geral: Sistema de Análise de Crédito para uma Empresa de Emprestimos
🔸 Cliente
Cadastro de clientes: nome, e-mail, CPF, RG, endereço completo, renda e senha.
Consulta do Cadastro dos Clientes
Demais metodos de alteração e exclusão do cadastro
🔸 Emprestimo
Solicitação de empréstimo: valor do empréstimo, data da primeira parcela e quantidade de parcelas.
Acompanhamento das solicitações de empréstimo: retornar no mínimo o código do empréstimo, o valor e a quantidade de parcelas.
Detalhes de um dos empréstimos do cliente retornar: código do empréstimo, valor, quantidade de parcelas, data da primeira parcela, e-mail do cliente e renda do cliente.
🔸 Login
Autenticação será realizada por e-mail e senha.
Classe e repositorio de Usuários
Controlador para autenticação
Na Homepage do Swagger será apresentado quatro controladores:
🔻 Controle de Auteenticação - realiza geração de token para autenticação na API;
🔻 Cliente Controller - Contrala os serviços de cadastro, consulta, alteração e exclusão do Banco de dados;
🔻 Emprestimo Controller - Realiza solicitação de emprestimo, acompanhamento, detalhe, alteração e exclusão;
🔻 Status Aplicação - Testa se aplicação está funcionando.
🔸 Security
Utilização do JWT para geração e validação de token para autenticação.
Spring Security para solução de segurança
Autenticação Inmemory e via Banco de dados
🔗No Controlador de acesso:
🔻 Realiza o metodo post, utilizando o email e a senha do usuário;
🔻 Cadastrado, no Banco, dois usuários para teste:
Perfil ADMIN: email (admin@email.com) senha (654321)
Perfil User: email (usuario@email.com) senha (123456)
🔻 Executando o metodo post, recebe o token e cadastra no autorizador (Cadeaddo no canto superior direito);
🔻 Pronto! Você está autorizado para utilizar os serviços que possui autenticação liberada(conforme consta na descrição de cada metodo.
🔸 Controlador de cliente - Composto dos seguintes metodos:
🔹 Método GET (sem parametro) - Consulta a base de clientes na Empresa;
🔹 Método GET (com id do cliente) - Consulta o cadastro de um cliente na Empresa;
🔹 Método Post (sem parametro) - Realiza o cadastro de clientes na Empresa;
🔹 Método Put (com id do cliente) - Altera o cadastro de clientes na Empresa;
🔹 Método Delete (com id do cliente) - Exclui um cliente do cadastro na Empresa;
🔸 Controlador de Emprestimo - Composto dos seguintes metodos:
🔹 Método GET (sem parametro) - Consulta os Emprestimos dos clientes;
🔹 Método GET (com id do cliente) - Acompanhamento dos Emprestimos de um cliente;
🔹 Método Post (sem parametro) - Realiza o cadastro de Emprestimo para o cliente;
🔹 Método Put (com id do cliente) - Altera informações do Emprestimo do cliente: atualiza, finaliza, suspende e cancela;
🔹 Método Delete (com id do cliente) - Exclui um emprestimo do sistema;
Utilização do JUnit, REST-Assured e mockmvc para testes unitários e integração.
Cobertura de teste das classe Controller
Cobertura de testes das classes de serviço e repository
Bootcamp da DIO.
Desenvolvimento de API com a AlgaWorks.
Token com JWT e Spring Security Expertos Tech.
Spring Boot e Spring Securit com DevDojo.
Testes Unitários e integração com Julio de Lima.
Disponibilizado por Emerson.