Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: 22 days ago
JSON representation

Aplicação backend Spring Boot com Spring Security JWT.

Awesome Lists containing this project

README

        

# Solução Digital "E-Commerce" para Loja Virtual

[![NPM](https://img.shields.io/npm/l/react)](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)"

![Mobile 1](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile1.png "Tela inicial")
![Mobile 2](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile2.png "Tela de Login")
![Mobile 3](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile3.png "Tela de Categorias")
![Mobile 8](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile8.png "Categoria Informática")
![Mobile 9](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile9.png "Produto TV")
![Mobile 10](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile10.png "Seleção do Produto")
![Mobile 12](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile12.png "Produto Colcha")
![Mobile 13](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile13.png "Finalizar Pedido")
![Mobile 14](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile14.png "Selecionar Endereço")
![Mobile 15](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile15.png "Forma de Pagamento")
![Mobile 16](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile16.png "Conferir Pedido Tela 1")
![Mobile 17](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/mobile17.png "Conferir Pedido Tela 2")

# Modelo conceitual

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

![Modelo Conceitual](https://github.com/heliohdd/assets/blob/main/raw/main/spring-ionic/modelo-conceitual-spring-ionic.png)

# 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

[![LinkedIn Badge](https://img.shields.io/badge/-LinkedIn-blue?style=flat-square&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/heliohdd/)](https://www.linkedin.com/in/heliohdd/)