/delivery-common

Common lib for delivery-api

Primary LanguageJava

Delivery-Common

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


🛠 Tecnologias


📝 Sobre o 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.


🧰 Módulos


🚀 Executando projetos

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