https://github.com/heliohdd/springboot-jwt-backend
Aplicação backend Spring Boot com Spring Security JWT.
https://github.com/heliohdd/springboot-jwt-backend
aws-s3 spring-data-jpa spring-security-jwt
Last synced: 6 months ago
JSON representation
Aplicação backend Spring Boot com Spring Security JWT.
- Host: GitHub
- URL: https://github.com/heliohdd/springboot-jwt-backend
- Owner: heliohdd
- Created: 2020-01-07T15:02:41.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-02-23T16:09:22.000Z (over 5 years ago)
- Last Synced: 2024-12-29T14:57:02.914Z (over 1 year ago)
- Topics: aws-s3, spring-data-jpa, spring-security-jwt
- Language: Java
- Homepage:
- Size: 109 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Solução Digital "E-Commerce" para Loja Virtual
[](https://github.com/heliohdd/hdsdeliver-sds2/blob/main/LICENSE)
## Sobre o projeto
Este projeto é uma aplicação backend que implementa os principais módulos do framework Spring Boot tais como Spring Web MVC, Spring Data JPA, Spring Security com JWT e Spring Cloud AWS para Serviço AWS S3 para armazenamento de imagens em nuvem.
Algumas funcionalidades interessantes do projeto são:
- Validação customizada de CPF ou CNPJ na inserção de cliente;
- Validação customizada com e-mail não repetido no cadastro de cliente;
- Recuperação de senha;
- Controle de permissão ao usuário conforme perfil (Administrador ou Usuário);
- Busca de Produtos por nome ou por Categoria; e,
- Paginação com controle de parâmetros adicionais na requisição.
Esta aplicação consiste em um Sistema de Controle de Pedidos "e-commerce". Este sitema permite o controle de uma "Loja Virtual" composta por um catálogo de "Produtos" organizados em "Categorias", que podem ser escolhidos pelo "Cliente", e direcionados para serem entregues em um determinado "Endereço".
Após a conclusão do "Pedido", o sistema se comunica com uma API externa integrada para solução de "Pagamentos" online validando então a compra conforme autorização após a realização da operação de pagamento. O sistema ainda envia um e-mail para o cliente com os dados do pedido avisando sobre a confirmação de pagamento.
### Layout
Veja abaixo as telas que compõem o aplicativo posicionando o cursor sobre as imagens para conferir sua descrição.
## Layouts do "front-end responsivo (web e mobile)"












# Modelo conceitual
Abaixo é apresentado o modelo conceitual utilizado para o desenvolvimento desta aplicação.

# Tecnologias utilizadas
Abaixo são listadas as tecnologias utilizadas para o desenvolvimento desta aplicação.
## Back-end
- Java 11 LTS - (versão com suporte prolongado)
- Spring Boot 2.0.0 - (versão estável do framework)
- JPA/Hibernate - (mapeamento ORM)
- Maven - (gerenciamento de dependências)
- Postman - (testes durante o desenvolvimento)
## Banco de Dados
- H2 - (para ambiente de testes)
- MySQL - (para ambiente de desenvolvimento e de produção)
## Front-end web
- HTML5/CSS3/JS/TypeScript - (desenvolvimento web responsiva)
- Angular - (gerar aplicação web responsiva)
## Integração com API's
- Amazon S3 - (para armazenamento de imagens dos clientes e dos produtos)
- Google SMTP - (para comunicação sobre confirmação do pagamento.)
# Implantação do Projeto
O projeto foi implatado na nuvem através da plataforma PaaS Heroku com entrega contínua (Github Actions) para a parte do back-end, dispondo assim de um ambiente que oferece alta disponibilidade e escalabilidade permitindo ao Sistema ótimos níveis de performance e funcionabilidade.
# Como testar o projeto localmente?
Pré-requisito:
- [Java 11](https://www.oracle.com/br/java/technologies/javase-jdk11-downloads.html)
## Back end
**Clonar o repositório**
```
$ git clone https://github.com/heliohdd/springboot-jwt-backend
$ cd springboot-jwt-backend
```
**Executar o projeto**
```
$ ./mvnw spring-boot:run
```
**Testar funcionalidades da API**
[http://localhost:8080/swagger-ui-custom.html](http://localhost:8080/swagger-ui-custom.html)
# Autor
Hélio Dourado
[](https://www.linkedin.com/in/heliohdd/)