https://github.com/reinaldoper/js-books
Projeto para emprestimos de livros e gerenciamento de usuarios.
https://github.com/reinaldoper/js-books
Last synced: 9 days ago
JSON representation
Projeto para emprestimos de livros e gerenciamento de usuarios.
- Host: GitHub
- URL: https://github.com/reinaldoper/js-books
- Owner: reinaldoper
- Created: 2025-02-19T13:08:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-19T13:37:05.000Z (over 1 year ago)
- Last Synced: 2025-02-19T14:32:46.112Z (over 1 year ago)
- Language: JavaScript
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Biblioteca
## Descrição
Este é um projeto backend desenvolvido em Node.js utilizando Express, Prisma e outras bibliotecas para gerenciar um sistema de biblioteca. A aplicação permite o registro de usuários, login, gerenciamento de livros e empréstimos de livros.
## Instalação
1. Clone o repositório:
```bash
git clone
cd js-books
```
2. Instale as dependências:
```bash
npm install
docker compose up -d
```
3. Configure as variáveis de ambiente: Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis:
```bash
API_LISTENING_PORT=3000
DB_USERNAME=
DB_PASSWORD=
DB_HOST=
DB_PORT=
DB_NAME=
```
4. Inicialize o Prisma:
```bash
npx prisma db push
npx prisma migrate deploy
```
5. Inicie a aplicação:
```bash
npm run dev
```
## Endpoints
### Autenticação de Usuário
- Login de Usuário
- POST /user/login
```bash
{
"username": "string",
"password": "string"
}
```
### Registro de Usuário
- POST /user/register
```bash
{
"email": "string",
"username": "string",
"password": "string"
}
```
### Gerenciamento de Livros
- Criar Livros
- POST /books
```bash
{
"books": [
{
"title": "string",
"author": "string",
"edition": "string",
"publisher": "string",
"isbn": "string",
"genre": "string",
"page_count": "number",
"language": "string",
"publication_year": "number"
}
]
}
```
### Obter Livros
- GET /books
1. Query Params:
2. page: Número da página (opcional, padrão: 0)
3. Respostas:
- 200 OK: Lista de livros.
### Atualizar Livro
- PUT /books/:isbn
```bash
{
"title": "string",
"author": "string",
"edition": "string",
"publisher": "string",
"genre": "string",
"page_count": "number",
"language": "string",
"publication_year": "number"
}
```
### Deletar Livro
1. DELETE /books/:isbn
2. Respostas:
- 204 No Content: Livro deletado com sucesso.
- 400 Bad Request: Livro não encontrado.
### Empréstimo de Livros
1. Emprestar Livro
- POST /borrow
```bash
{
"isbn": "string"
}
```
### Devolver Livro
1. DELETE /return/:isbn
- Respostas:
- 204 No Content: Livro devolvido com sucesso.
- 400 Bad Request: Livro não encontrado ou não emprestado.
2. Obter Livros Emprestados
- GET /borrowed
- Respostas:
- 200 OK: Lista de livros emprestados.
### Tecnologias Utilizadas
- Node.js >18
- Express
- Prisma
- MySQL
- bcrypt
- cookie-parser
- cors
- dotenv
- jsonwebtoken
- nodemon
- zod
- docker