Neste projeto passamos pelo desafio de desenvolver um conjunto de API’s utilizando Spring Boot para controlar um estacionamento de veículos. Serão controlados a entrada, saída e valor a ser cobrado do cliente. Iremos ser instruídos a aplicar todas as boas práticas de desenvolvimento de API’s incluindo segurança com Spring Security e acesso a banco de dados PostgreSQL. Serão realizados testes e relatórios de cobertura de testes. Após finalizarmos a aplicação e termos enviado para o Github, nos é proposto fazer o deploy na cloud do Heroku a fim de disponibilizar nossa API para a Internet.
Pré-requisitos:
Lógica de programação e POO;
Conhecimento Avançado em Java e Spring Boot;
Conhecimento em Banco de dados PostgreSQL;
Conhecimento em GitHub e Heroku;
Instrutor: Sandro Giacomozzi - Software engineer, TOTVS
Carga Horária -> Proposta do Projeto e Mini Curso Springboot: 10h;
Avaliado como: Full-Stack, Avançado
☑️ Apresentação dos objetivos e requisitos do projeto. Introdução aos conceitos do Spring Boot. Gerando nossa aplicação com o Spring Initializr.
☑️ Apresentando a estrutura do pom.xml e as dependências do projeto.
☑️ Demonstrando outras formas de iniciar nosso projeto. Subindo a aplicação para GitHub.
☑️ Hospedando aplicação no Heroku. Adicionando o System Properties.
☑️ Apresentando os conceitos REST e Verbos HTTP. Criando o primeiro endpoint de cadastro.
☑️ Aplicando Design Patterns DTO para representar nossa view. Finalizando a criação do endpoint de cadastro.
☑️ Modelando a conversão das Lista e aplicando o o ResponseEntity.
☑️ Criando o método findById() e implementando o @PostMapping.
☑️ Documentando a API com Swagger utilizando o Spring Fox.
☑️ Configurando as exceções da aplicação e fazendo o tratamento no controller.
☑️ Construindo os métodos UPDATE e DELETE.
☑️ Realizando os testes da API e configurando as portas da aplicação.
☑️ Implementando os testes do findAll().
☑️ Revisando a API e iniciando o conceito de Persistência.
☑️ Trabalhando com JPA. Configurando o Banco de dados e criando um container.
☑️ Realizando alterações no Service e criando a interface Repository.
☑️ Implementando algoritmos da regra de negócio. Realizando o cálculo de dias e horas.
☑️ Testando o banco de dados da aplicação e realizando as implementações do TestContainers
☑️ Atualizando as tabelas do banco de dados e visualizando o Heroku com o DB.
☑️ Configurando a segurança da aplicação, acessando e configurando acesso ao Swagger-uri. Adicionando a dependência Spring Security.
☑️ Criando a classe de configuração. Security web. SecurityConfiguration.
☑️ Finalizando as configurações de acesso e a API.
☑️ Entendendo o Desafio e Materiais de Apoio
docker run --name parking-db -p 5432:5432 -e POSTGRES_DB=parking -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=123 -d postgres:10-alpine
docker stop parking-db
docker start parking-db