Este projeto é uma API de controle de manutenção de equipamentos, nele controlaremos todos os estágios da execução de um serviço. Nossas funcionalidades são:
- Listar Clientes
- Cadastrar Cliente
- Listar Ordem de Serviços
- Lista Ordem de Serviços resumida
- Cadastrar Ordem de Serviço
- Cancelar ordem de serviço
- Concluir ordem de serviço
- Iniciar atendimento da ordem de serviço
- Pausar ordem de serviço
- Retomar ordem de serviço
- Filtrar Ordem de Serviço por responsável
O projeto foi inteiramente desenvolvido na linguagem de programação Java, porém para obter a melhor performance utilizamos alguns frameworks e bibliotecas, são elas:
- Spring Boot
- Spring Data JPA
- Spring Data JDBC
- Spring Devtools
- SpringFox Swagger
- Lombok
- Flyway
- Querydsl
- ModelMapper
- Cerca de 15 minutos
- Um editor de texto ou IDE favorito
- JDK 12 ou posterior
- Maven 3.2+
Baixe e descompacte o repositório de origem ou clone-o usando o comando:
git clone https://github.com/victtorfreitas/Manutencao-Equipamentos.git
Abra o diretório Manutencao-Equipamentos e execute o comando:
mvn spring-boot:run
Este projeto foi documentado através do Swagger, para acessar sua documentação você deve inicializar o projeto e logo em seguida acessar o link:
- Adicionar a funcionalidade de inserir um resultado sem alterar o status da ordem de serviço;
- Adicionar a funcionaliadde de inserir funcionário;
- Adicionar a funcionaliadde de listar equipamentos por cliente;
- Adicionar a funcionalidade de listar os funcionários sem demanda;
- Adicionar a funcionalidade de atualizar dados cadastrais do cliente;
- Adicionar regra de ao inserir um resultado desabilitar o anterior;
Um dos principais desafios desse projeto foi estruturar de forma modular, ao finalizar o desenvolvimento da primeria versão percebi que a forma que estruturei o projeto não foi a mais adequada e provavelmente mudarei na segunda versão. O problema dessa estrutura é a grande quantidade de separações, mantendo a navegação e o fácil entendimento do projeto um pouco complicado. Tenho em mente manter a arquitetura porém mudar a estruturação de forma que a modulação do projeto não se torne um problema de escalabilidade.
- Victtor Araújo Freitas
MIT
Software Livre, É isto!