Este projeto foi iniciado durante o mergulho spring rest java da Algaworks, onde foi implementada uma API java que gerência dados de clientes e entregas, segue em andamento onde novas funcionalidades estão sendo incorporadas ao projeto
Aplicação feita com spring boot que gerência dados de entregas de clientes onde é possível cadastrar/atualizar/excluir o mesmo permitindo que o mesmo seja relacionado com entrega. As entregas são compostas por estados: PENDENTE, FINALIZADO e CANCELADO, onde a aplicação permite a mudança dos estados de acordos com as regras definidas, e também é composta por ocorrências onde pode definir uma mensagem explicando o que aconteceu na entrega como por exemplo: a pessoa que iria receber o produto não estava em casa.
Nesse projeto foram implementados, validações por meio da criação de anotações especificas, camada de modelo, repositórios, controladores, camada de serviço, DTOs para requisição e resposta, exception personalizada, exception handler, model mapper (responsável por fazer o parse de um objeto para outro), testes de integração, testes de unidade, testes de mutação com pitest, documentação de api com swagger, mensageria com rabbitmq usando apache camel (envio e consumo), envio de emails e etc.
- Delivery-Common
- Delivery-Api
- Delivery-Send-Email
Para executar qualquer modulo, o modulo de Delivery-Common deve ser clonado e dentro dele, o terminal dever ser aberto e executado o comando 'mvn clean install' para gerar um arquivo .jar que será usado automaticamente nos demais módulos. Após isso é só executar o módulo que deseja
O modulo Delivery-Api, necessita do Mysql e RabbitMq, as propriedades são setadas no application.properties
O modulo Delivery-Send-Email, necessita do RabbitMq e de um servidor smtp, as propriedades são setadas no application.properties