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.
Veja abaixo as telas que compõem o aplicativo posicionando o cursor sobre as imagens para conferir sua descrição.
Abaixo é apresentado o modelo conceitual utilizado para o desenvolvimento desta aplicação.
Abaixo são listadas as tecnologias utilizadas para o desenvolvimento desta aplicação.
- 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)
- H2 - (para ambiente de testes)
- MySQL - (para ambiente de desenvolvimento e de produção)
- HTML5/CSS3/JS/TypeScript - (desenvolvimento web responsiva)
- Angular - (gerar aplicação web responsiva)
- Amazon S3 - (para armazenamento de imagens dos clientes e dos produtos)
- Google SMTP - (para comunicação sobre confirmação do pagamento.)
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.
Pré-requisito:
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
Hélio Dourado