- Frameworks: Spring Boot, Hibernate, JPA, Spring Security, JUnit.
- Persistência de Dados: MySQL para desenvolvimento, PostgreSQL para produção (Render).
- Transmissão de Dados: JSON padrão na API.
- Arquitetura: Padrão MVC.
- Segurança: Autenticação e Autorização com Spring Security e JWT.
- Testes: Testes unitários utilizando JUnit.
- Dependências Principais: Spring Web, Spring Boot Devtools, Spring Data JPA, MySQL Driver, JWT, JUnit, H2 Database, Spring Doc, PostgreSQL.
- Documentação API: Swagger UI para visualização dos endpoints.
- A documentação fornece informações detalhadas sobre os endpoints, modelos de dados e como interagir com a API.
- Explore a documentação Swagger para obter uma visão completa da API aqui.
- Gerenciamento de Livros: Criação, atualização, listagem e exclusão de livros na loja.
- Gerenciamento de Empréstimos: Registro de empréstimos de livros, renovação e devolução.
- Autenticação e Autorização: Controle de acesso com base em JWT para proteger os endpoints da API.
- Gerenciamento de Usuários: Cadastro, login, atualização e remoção de usuários.
- Java 11 ou superior
- Maven 3.6.3 ou superior
- MySQL ou PostgreSQL para o banco de dados
-
Clone o repositório:
git clone /~https://github.com/felipemacedo1/spring-bookstore-management.git
-
Navegue até o diretório do projeto:
cd spring-bookstore-management
-
Configure o banco de dados no arquivo `application.properties` ou `application.yml`.
-
Execute o projeto:
mvn spring-boot:run
-
Acesse a documentação Swagger em:
http://localhost:8080/swagger-ui.html
- A aplicação pode ser implantada em qualquer serviço de nuvem que suporte Java, como AWS, Heroku, ou Vercel.
- Para PostgreSQL em produção, você pode utilizar serviços como Render para hospedar o banco de dados.
- `/src/main/java`: Contém a lógica de negócio, controladores, modelos e repositórios.
- `/src/main/resources`: Contém arquivos de configuração, como `application.properties`.
- `/src/test/java`: Contém testes unitários escritos com JUnit.
Este projeto foi desenvolvido como parte do aprendizado contínuo em desenvolvimento Java e Spring Boot.