Este é um sistema de gerenciamento de biblioteca construído com Spring Boot.
- Gerenciamento de usuários: adicionar, editar e remover usuários.
- Gerenciamento de livros: adicionar, editar e remover livros.
- Empréstimo de livros: os usuários podem pegar até dois livros emprestados por vez.
- Devolução de livros: os usuários podem devolver os livros emprestados.
O sistema possui três entidades principais: Usuário
, Livro
e Empréstimo
.
A entidade Usuario
representa um usuário do sistema. Possui os seguintes campos:
id
: identificador único do usuário.nome
: nome do usuário.email
: endereço de email do usuário.telefone
: telefone do usuário.
A entidade Livro
representa um livro no sistema. Possui os seguintes campos:
id
: identificador único do livro.autor
: autor do livro.titulo
: título do livro.
A entidade Empréstimo
representa um empréstimo de livro. Possui os seguintes campos:
id
: identificador único do empréstimo.livro_id
: identificador do livro emprestado.usuario_id
: identificador do usuário que pegou o livro emprestado.dataEmprestimo
: data do empréstimo.dataDevolucao
: data da devolução.
O sistema possui as seguintes chamadas de serviço disponíveis:
GET /api/v1/livros
: busca todos os livros.GET /api/v1/livros?pesquisa=
: busca livros por título ou autor.GET /api/v1/livros/{id}
: busca livro por id.POST /api/v1/livros
: adiciona livro.PUT /api/v1/livros/{id}
: modifica livro.DELETE /api/v1/livros/{id}
: remove livro.GET /api/v1/livros/{id}/emprestimos
: busca empréstimos do livro.GET /api/v1/livros/{id}/emprestimos/ativo
: busca empréstimo ativo do livro.GET /api/v1/livros/{id}/emprestimos/devolvidos
: busca empréstimos devolvidos do livro.
GET /api/v1/usuarios
: busca todos os usuários.GET /api/v1/usuarios?pesquisa=
: busca usuários por nome ou email.GET /api/v1/usuarios/{id}
: busca usuário por id.POST /api/v1/usuarios
: adiciona usuário.PUT /api/v1/usuarios/{id}
: modifica usuário.DELETE /api/v1/usuarios/{id}
: remove usuário.GET /api/v1/usuarios/{id}/emprestimos
: busca empréstimos do usuário.GET /api/v1/usuarios/{id}/emprestimos/ativos
: busca empréstimos ativos do usuário.GET /api/v1/usuarios/{id}/emprestimos/devolvidos
: busca empréstimos devolvidos do usuário.
GET /api/v1/emprestimos
: busca todos os empréstimos.GET /api/v1/emprestimos?pesquisa=
: busca empréstimos por usuário ou livro.GET /api/v1/emprestimos/{id}
: busca empréstimo por id.GET /api/v1/emprestimos/devolvidos
: busca empréstimos já devolvidos.GET /api/v1/emprestimos/ativos
: busca empréstimos não devolvidos.POST /api/v1/emprestimos
: adiciona empréstimo.PATCH /api/v1/emprestimos/{id}
: devolve livro.
Acesse os endpoints aqui.
Este guia fornece instruções passo a passo para executar o projeto.
Antes de começar, certifique-se de que o JDK e o Maven estão instalados e que as variáveis de ambiente estão corretamente definidas. A variável JAVA_HOME deverá estar apontando para o JDK versão 17.
- Clone o repositório
git clone https://github.com/erickgnclvs/gerenciador-biblioteca.git
. - Abra o arquivo
application.properties
e configure-o para usar o H2 descomentando as seguintes propriedades:
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:biblioteca
- Se estiver usando o MySQL, ative o driver e configure o nome da database, usuário e senha nas propriedades:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
Na pasta raiz do projeto, execute o seguinte comando para testar o projeto:
mvn test
Execute o seguinte comando para compilar o projeto:
mvn package
Para executar o projeto, use o seguinte comando na pasta raiz do projeto:
mvn spring-boot:run
Para executar o projeto em um container, use os seguintes comandos:
docker build -t gerenciador-biblioteca .
docker run -p 8080:8080 gerenciador-biblioteca
Importe o arquivo biblioteca.postman_collection.json
como uma collection no Postman e realize testes através dos end-points em http://localhost:8080/api/v1, modificando os parâmetros necessários para testar todos os casos.
- IntelliJ Ultimate Edition - versão free para estudantes
- Spring Boot 3.1.2
- Maven 3.9.4
- Java Development Kit 17.0.8
- MySQL Community Server 8.0.33
- Postman Agent 0.4.15
****** ******
********** **********
************* *************
*****************************
*****************************
******** me contrata ********
***************************
***********************
*******************
***************
***********
*******
***
*