https://github.com/zennon-sml/web2-n2a
https://github.com/zennon-sml/web2-n2a
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/zennon-sml/web2-n2a
- Owner: zennon-sml
- Created: 2025-01-12T14:32:31.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-02-16T21:45:20.000Z (2 months ago)
- Last Synced: 2025-02-16T22:25:27.782Z (2 months ago)
- Language: JavaScript
- Homepage: https://web2n2.vercel.app
- Size: 4.25 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Projeto de gerenciamento de salas WEB2
Descrição do ProjetoA API desenvolvida é parte do projeto da disciplina de WEB2, cujo objetivo é implementar um sistema de gerenciamento de salas. A API é responsável por gerenciar laboratórios, autenticação de usuários e gerar relatórios em PDF.
#### Equipe:
- Zennon Sampaio
- Francisco da Cunha
- Phillipe DantasTecnologias Utilizadas
- Node.js
- Express
- MongoDB Atlas
- JSON Web Token (JWT) para autenticação
- Multer para upload de arquivos
- PDFKit para geração de PDFs## Rotas da API
Middleware de Segurança**Middleware de Autenticação:**
Verifica se o token JWT é válido e permite acesso às rotas protegidas(/laboratorio/novo, /laboratorios/relatorio).**Middleware de Horário:**
Permite o uso da API apenas de segunda à sexta-feira.
### 1. Autenticação
```
POST /api/logar
```
Autentica o usuário e retorna um token JWT.Corpo da requisição:
```
{
"email": "[email protected]",
"password": "senha123"
}
```
Resposta de sucesso:
```
{
"token": ""
}
```
Códigos de status:
```
200: Login realizado com sucesso401: Credenciais inválidas
```
### 2. Criação de Laboratórios
```
POST /api/laboratorio/novo
```
Cadastra um novo laboratório.Middleware: Requer token JWT retornado ao fazer autenticação(definir na requisição no headers como "Authorization") e aceita apenas uploads de segunda à sexta-feira.
Corpo da requisição: (com multipart/form-data para envio de arquivos)
```
{
"name": "Laboratório 1",
"description": "Laboratório equipado para aulas de química.",
"capacity": 30,
"picture":
}
```
Resposta de sucesso:
```
{
"message": "Laboratório criado com sucesso",
"lab": {
"_id": "",
"name": "Laboratório 1",
"description": "Laboratório equipado para aulas de química.",
"capacity": 30,
"picture": "uploads/"
}
}
```
Códigos de status:
```
201: Laboratório criado400: Campos obrigatórios não preenchidos
401: Token JWT ausente ou inválido
```
### 3. Relatório
```
GET /api/laboratorios/relatorio
```
Gera e permite o download de um relatório em PDF com informações de todos os laboratórios cadastrados no banco de dados.Middleware: Requer token JWT retornado ao fazer autenticação(definir na requisição no headers como "Authorization") e aceita apenas uploads de segunda à sexta-feira.
Resposta de sucesso: Arquivo PDF para download.
Códigos de status:
```
200: Relatório gerado401: Token JWT ausente ou inválido
500: Erro interno ao gerar o relatório
```