Skip to content

hypervalley/bookstoremanager_paid_course

 
 

Repository files navigation

Quality Gate Status Build Status

Bookstore API Manager

O objetivo do projeto Bookstore API Manager é disponibilizar uma API para cadastro dos livros de uma livraria através de uma API REST.

O projeto foi desenvolvido como base do curso completo sobre Spring Boot, publicado na Udemy em agosto de 2020.

Durante o projeto, são abordados os seguintes tópicos:

  • Setup inicial de projeto com o Spring Boot Initialzr.
  • Criação de modelo de dados para o mapeamento de entidades em bancos de dados.
  • Configuração do nosso projeto no SonarCloud, e como a ferramenta dá apoio no aumento da qualidade do nosso projeto.
  • Configuraçao do TravisCI como ferramenta de integração contínua.
  • Desenvolvimento de operações de gerenciamento de usuários, livros, autores e editora.
  • Desenvolvimento de autenticaçao e autorização de usuários através do Spring Security, e com suporte a JWT.
  • Relação de cada uma das operações acima com o padrão arquitetural REST, e a explicação de cada um dos conceitos REST envolvidos durante o desenvolvimento do projeto.
  • Desenvolvimento de testes unitários para validação das funcionalidades.
  • Apresentação do TDD (Test Driven Development), e como desenvolver funcionalidade na prática com o TDD.
  • Desenvolvimento de testes de integração com o Postman.
  • Abertura Pull requests e Code Reviews na prática, e como estas práticas aumentam a qualidade do nosso projeto.
  • Implantação do sistema na nuvem através do Heroku.

Para executar o projeto no terminal, digite o seguinte comando:

mvn spring-boot:run 

Após executar o comando acima, basta apenas abrir o seguinte endereço e visualizar a execução do projeto:

http://localhost:8080/api/v1/books

Para abrir a documentação (disponibilizada através do Swagger 2) de todas as operações implementadas com o padrão arquitetural REST, acesse o seguinte link abaixo:

http://localhost:8080/swagger-ui.html

Após executar o comando acima, basta apenas abrir o seguinte endereço e visualizar a execução do projeto:

As seguintes ferramentas abaixo são utilizadas como part do desenvolvimento do projeto prático do curso:

  • Java 14 ou versões superiores.
  • Maven 3.6.3 ou versões superiores.
  • SDKMan! para o gerenciamento de múltiplcas versões de Java, Maven e Spring Boot.
  • Banco de dados H2 como SGBD do nosso projeto (em ambos ambientes, Dev e Prod)
  • Intellj IDEA Community Edition ou sua IDE favorita.
  • Controle de versão GIT instalado na sua máquina.
  • SonarCloud para verificaçao da qualidade de código do nosso projeto.
  • TravisCI como ferramenta de integração contínua.
  • Swagger 2 para a documentação de todos os endpoints desenvolvidos dentro do projeto.
  • Conta no GitHub para o armazenamento do seu projeto na nuvem.
  • Conta no Heroku para o deploy do projeto na nuvem
  • Postman para execução de testes de integração para a validação de ponta a ponta da API.

Abaixo, segue o link do projeto implantado no Heroku:

https://bookstoremanager-prod.herokuapp.com/api/v1/books

O link da documentação no Heroku, implementada também atraves do Swagger, está no link abaixo:

https://bookstoremanager-prod.herokuapp.com/swagger-ui.html

About

Bookstore Manager paid course Source Code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%