Este projeto simula um sistema interno de uma biblioteca, permitindo gerenciar usuários, livros e aluguéis de livros. A API foi desenvolvida com Laravel 11 e utiliza MySQL (gerenciado via PHPMyAdmin) para armazenar as informações.
- PHP 8.0+.
- Composer para gerenciamento de dependências.
- Laravel 11 para a construção da API REST.
- MySQL para o banco de dados relacional.
-
CRUD de Usuários:
- Criar, editar, listar e deletar usuários.
- Validação para garantir CPF único.
-
CRUD de Livros:
- Criar, editar, listar e deletar livros.
- Validação para garantir nome único para cada livro.
-
Gerenciamento de Aluguéis (Tabela Pivot):
- Relacionamento entre usuários e livros.
- Cada usuário pode alugar múltiplos livros, mas cada livro só pode ser alugado por um usuário por vez.
- Adição e remoção da data de devolução do livro.
-
Endpoints Disponíveis:
- Usuários:
- POST /register: Registro de novo usuário.
- POST /login: Login de usuário.
- GET /users: Listagem de usuários.
- GET /users/{id}: Detalhes de um usuário específico.
- PATCH /users/{id}: Atualização de informações de um usuário.
- DELETE /users/{id}: Exclusão de um usuário.
- Livros:
- POST /books: Criação de novos livros.
- GET /books: Listagem de livros.
- GET /books/{id}: Detalhes de um livro específico.
- PATCH /books/{id}: Atualização de informações de um livro.
- DELETE /books/{id}: Exclusão de um livro.
- Aluguéis:
- GET /rentals: Listagem de todos os aluguéis.
- GET /rentals/{searchTerm}: Buscar aluguel pelo nome do usuário ou livro.
- POST /rentals: Criar um novo aluguel de livro.
- PATCH /rentals/{id}/return: Atualizar a devolução de um livro.
- PATCH /rentals/{id}: Atualizar um aluguel específico.
- DELETE /rentals/{id}: Deletar um aluguel específico.
- Usuários:
id
: Identificador único.name
: Nome do usuário.cpf
: CPF do usuário (único).email
: Email do usuário (único).password
: Senha do usuário.remember_token
: Token para "lembrar-me".timestamps
: Data de criação e atualização.
id
: Identificador único.name
: Nome do livro (único).type
: Tipo ou categoria do livro.author
: Autor do livro.pages
: Quantidade de páginas.price
: Preço do livro.synopsis
: Sinopse do livro.available
: Indica se o livro está disponível para aluguel.timestamps
: Data de criação e atualização.
id
: Identificador único.book_id
: ID do livro.user_id
: ID do usuário.start_date
: Data de início do aluguel (não pode ser nula).end_date
: Data de devolução do livro (pode ser nula).timestamps
: Data de criação e atualização.
Certifique-se de ter as seguintes ferramentas instaladas:
- PHP 8.0+
- Composer
- MySQL
- Docker (opcional, para facilitar a execução)
git clone https://github.com/malobr/Biblioteca-laravel.git
cd backend
Execute os seguintes comandos:
-
Instale as dependências:
composer install
-
Copie o arquivo
.env
de exemplo e edite-o:cp .env.example .env
Configure as variáveis do arquivo
.env
de acordo com o ambiente, como conexão com o banco de dados (DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD). -
Gere a chave da aplicação:
php artisan key:generate
-
Execute as migrações para criar as tabelas no banco de dados:
php artisan migrate
-
Se necessário, popule o banco de dados com dados de exemplo:
php artisan db:seed
-
Inicie o servidor local:
php artisan serve
-
Importar o Arquivo JSON no Postman
Para testar os endpoints da API, importe o arquivo de coleção disponível:
- O arquivo
LibraryRentals.postman_collection.json
está localizado na pasta raiz do projeto. - Abra o Postman.
- Clique em Importar (ícone no canto superior esquerdo).
- Selecione Arquivo e localize o arquivo
LibraryRentals.postman_collection.json
na pasta raiz do seu repositório. - Clique em Importar.
Agora, você poderá testar todos os endpoints diretamente através do Postman...