Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/temgi/apilogistica
A API Foi Desenvolvida para o Controle do Fluxo de Entrega de Mercadorias para Clientes, empregando Recurso como Versionamento Database, Collection Resources, Validação, Exception Handler, Padrão ISO-8601 para Data e Hora, Validation Group, Domain Services, Padrão DTO, Validação em Cascata, Sub-Recursos de API, Ação Não-CRUD(Processos de Negócios)
https://github.com/temgi/apilogistica
apache-tomcat bean-validation flyway hibernate-jpa jackson java-11 lombok maven model-mapper mysql-database postman spring-boot spring-data-jpa springframework
Last synced: about 1 month ago
JSON representation
A API Foi Desenvolvida para o Controle do Fluxo de Entrega de Mercadorias para Clientes, empregando Recurso como Versionamento Database, Collection Resources, Validação, Exception Handler, Padrão ISO-8601 para Data e Hora, Validation Group, Domain Services, Padrão DTO, Validação em Cascata, Sub-Recursos de API, Ação Não-CRUD(Processos de Negócios)
- Host: GitHub
- URL: https://github.com/temgi/apilogistica
- Owner: Temgi
- License: mit
- Created: 2023-08-01T14:55:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-02T20:00:52.000Z (over 1 year ago)
- Last Synced: 2024-11-22T07:05:51.455Z (about 1 month ago)
- Topics: apache-tomcat, bean-validation, flyway, hibernate-jpa, jackson, java-11, lombok, maven, model-mapper, mysql-database, postman, spring-boot, spring-data-jpa, springframework
- Language: Java
- Homepage: http://app-java.ddns.net:8082/clientes
- Size: 751 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
API-REST para Logística
End-Point para Controle de Entregas
[![NPM](https://img.shields.io/npm/l/react)](https://github.com/Temgi/APILog/blob/main/LICENSE)
## 🧠 Sobre o Projeto
A Aplicação é uma API-REST criada com SpringBoot sem Front-End, Oriunda da Semana do Mergulho Spring REST(MSR), evento organizado pela Algaworks. Essa API Foi Desenvolvida para o Controle de Entrega de Mercadorias em Logísticas, utilizando Recursos como Versionamento de Database, Collection Resources, Validação, Tratamento de Exceções, Padrão ISO-8601 para Data e Hora, Validation Group, Camada Domain Services, Padrão DTO, Validação em Cascata, Separação entre as Camadas de Domain Model e Representation Model, Sub-Recursos de API, Ação Não-CRUD(Processos de Negócios).
Sendo Formada de End-Points envolvendo o Processo de Pedidos, tendo como Base as Entidades Entrega, Cliente, Destinatário, Ocorrência e Status.Link do Projeto para Acesso Online
## 📗 Sumário
* [End-Point para Listagem](#-end-point-clientes-para-listagem)
* [End-Point para Cadastro](#-end-point-clientes-para-cadastro)
* [Organização de Pacotes](#-organização-de-pacotes)
* [Features](#%EF%B8%8F-features)
* [End-Point para Atualização](#-end-point-clientes-para-atualização)
* [End-Point para Exclusão](#%EF%B8%8F-end-point-clientes-para-exclusão)
* [Estrutura de Classes](#-estrutura-de-classes)
* [Tecnologias Utilizadas](#-tecnologias-utilizadas)
* [Modelo Entidade Relacionamento](#-modelo-entidade-relacionamento)
* [Como Executar o Projeto](#-como-executar-o-projeto)
* [Autor](#-autor)## 💻 End-Point /Clientes para Listagem
![End-Point Listagem](https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/API-EndPoint1.png)
## 🎨 End-Point /Clientes para Cadastro
![End-Point Cadastro](https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/API-EndPoint3.png)
## 👓 Organização de Pacotes
![Pacotes do Projeto](https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/PacotesProjeto.png)
## ⚙️ Features
- [x] Collection Resources
- [x] End-Point(CRUD) para /Clientes
- [x] Representação em JSON e XML
- [x] Versionamento de Database(Migration)
- [x] Validação de Dados
- [x] Exception Handler Customizado
- [x] Camada de Domain Services
- [x] End-Point(CRUD) para /Entregas
- [x] Validação em Cascata
- [x] Validation Group
- [x] Padrão ISO-8601 para Data e Hora
- [x] Separação entre Domain Model e Representation Model
- [x] Padrão DTO com Model Mapper
- [x] Emgrego de Sub-Recursos de API
- [x] Implementação de Ação Não-CRUD(Processos de Negócios)## 💡 End-Point /Clientes para Atualização
![End-Point Atualização](https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/API-EndPoint4.png)
## 🛰️ End-Point /Clientes para Exclusão
![End-Point Exclusão](https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/API-EndPoint5.png)
## 🎯 Estrutura de Classes
![Estrutura de Classes](https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/EstruturaClasses.png)
## 🚀 Tecnologias Utilizadas:
### Back-End
- Java 11
- Spring Framework
- Spring Boot
- Spring Data JPA
- Jackson JSON
- Postman
- Lombok
- Maven
- Apache TomCat
- Flyway
- Model Mapper
- JPA-Hibernate
- Bean Validation
- MySQL
## 🔥 Modelo Entidade Relacionamento
![MER](https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/MER.png)
## 🏁 Como Executar o Projeto
### Instalações
1-Baixar e Instalar o Java-JDK no Link Abaixo:
https://www.oracle.com/br/java/technologies/javase/javase8-archive-downloads.html
2-Configurar Variáveis de Ambiente do Java-JDK Conforme Link Abaixo:
https://www.alura.com.br/apostila-java-orientacao-objetos/apendice-instalacao-do-java
3-Baixar e Instalar o MySQL Seguindo os Links Abaixo:
https://dev.mysql.com/downloads/windows/installer/8.0.html
https://www.alura.com.br/artigos/mysql-do-download-e-instalacao-ate-sua-primeira-tabela
4-Baixar e Instalar o Postman Seguindo os Links Abaixo:
https://www.postman.com/downloads/
https://www.alura.com.br/artigos/postman-como-instalar-dar-seus-primeiros-passos
### Configuração Banco de Dados
1-Script SQL para Criação do Banco de Dados
~~~sql
CREATE SCHEMA `algalog`;
~~~
2-Script SQL para Popular Tabela CLIENTE
~~~sql
INSERT INTO cliente(nome, email, fone)
VALUES('João da Silva', '[email protected]', '11-99955-3333');
INSERT INTO cliente(nome, email, fone)
VALUES('Maria Abadia', '[email protected]', '11-99888-4444');
~~~
### Execução e Deploy do Projeto
#### Clonar Repositório
- git clone https://github.com/Temgi/APILogistica.git
#### Executar o Projeto
- Baixar e Descompactar o Apache Maven apache-maven-3.8.4 no Unidade C:\
- Copiar o Endereço da Pasta [bin] no Caminho [C:\apache-maven-3.8.4\bin]
- Configurar as Variáveis de Ambiente para o Apache Maven apache-maven-3.8.4:
Abra o Meu Computador no Windows(Win+E) / Botão Direito dentro de Meu Computador e Selecione [Propriedades] / Click
no lado Esquerdo em [Configurações Avançadas de Sistema] / Na Aba [Avançado], clique na Parte Inferior em [Variáveis
de Ambiente] / Em [Variáveis de Sistema] Click em [Novo] / No Campo [Nome da Variável] digite [MAVEN_HOME] / No
Campo [Valor da Variável] digite [C:\apache-maven-3.8.4] e Click OK / Selecione na Lista o Item [PATH] e Click em
[Editar] / Click em [Novo] digite [%MAVEN_HOME%\bin] / Click em OK - OK - OK. Abra o Executar no Windows com [Win+R]
digite [cmd], no Prompt de Comando digite o comando [mvn -version]
- Acessar no Prompt de Comando o Caminho da Pasta [target] do Projeto [APILogistica]
- No Prompt Executar o Comando [java -jar AppLogistica.jar]
- Baixar o Collection Resources do Postman logo Abaixo:
https://github.com/Temgi/APILogistica/blob/main/algalog-api/assets/API%20-%20Externo(Nuvem).zip
- Abrir o Postman e Importar a Collection conforme Link Abaixo:
https://learning.postman.com/docs/getting-started/importing-and-exporting-data/
## 📝 **Autor**
Rui Azevedo
Contatos: LinkedIn - WhatsApp - [email protected]