sistema web para o gerenciamento de agendamento de salas do DAPE
  • JavaScript 99.9%
  • Dockerfile 0.1%
Find a file
2025-12-19 13:27:46 +00:00
deploy corrigindo nome do arquvio de deploy 2025-07-10 20:30:50 -04:00
prisma atualizado seed 2025-12-19 09:21:18 -04:00
src correção das menssagems 2025-12-17 10:03:12 -04:00
.editorconfig rota de listar usuarios implementada 2025-06-07 16:44:51 -03:00
.envExample rota de alteração de senha implementada 2025-09-03 20:32:10 -04:00
.gitignore testes de inserir implementado 2025-06-10 16:49:04 -04:00
.gitlab-ci.yml update ci 2025-09-11 23:18:02 -04:00
.npmrc rota post em andamentop 2025-07-01 21:46:06 -04:00
docker-compose.yml configuração do banco de dados concluida 2025-04-26 23:14:27 -03:00
Dockerfile testantando deploy 2025-08-27 01:33:41 +00:00
jest.config.js testes de inserir implementado 2025-06-10 16:49:04 -04:00
package-lock.json atualizando prisma version 2025-09-11 23:12:45 -04:00
package.json atualizando prisma version 2025-09-11 23:12:45 -04:00
README.md atualizadno readme 2025-07-11 01:32:07 -03:00
server.js Iniciando configurações Inicias da api com express 2025-04-26 21:50:35 -03:00

🚀 API — Sistema de Agendamento de Salas

Bem-vindo à API Sitema de agendamento de salas. Este sistema permite o gerenciamento e agendamento de salas em uma instituição de forma eficiente e segura, oferecendo recursos de cadastro de usuários, controle de reservas e gestão de permissões.


📖 Sobre o Projeto

Este projeto tem como objetivo criar um sistema de reservas de salas, onde usuários autenticados podem consultar a disponibilidade, realizar agendamentos e cancelar reservas. Administradores podem controlar o cadastro de salas e editar reservas, além de gerenciar os usuários do sistema.

A API foi desenvolvida seguindo boas práticas de arquitetura backend e segurança, com validação de dados, autenticação via tokens e documentação interativa.


🛠 Tecnologias Utilizadas

  • Node.js
  • Express
  • Prisma (ORM)
  • PostgreSQL
  • Zod (validações)
  • Swagger (documentação)
  • Jest (testes unitários)
  • 📦 [Seu pacote npm pessoal (se quiser, coloque o nome aqui)]

📌 Funcionalidades

  • 📑 Cadastro, listagem e atualização de usuários
  • 🔐 Autenticação com login, logout e refresh de token
  • 🏢 Cadastro, listagem e atualização de salas
  • 📆 Cadastro, listagem, atualização e exclusão de reservas
  • ✅ Validações de dados com Zod
  • 📝 Documentação interativa via Swagger
  • 🧪 Testes unitários com Jest

📦 Instalação e Execução

🔧 Pré-requisitos

  • Node.js 18+
  • PostgreSQL
  • npm

📥 Instalação

Clone o projeto:

git clone https://gitlab.fslab.dev/Kelve.Oliveira/api-sistema-agendamento-salas.git
cd api-sistema-agendamento-salas
npm install

⚙️ Configuração do Ambiente

Crie um arquivo .env na raiz do projeto com as seguintes variáveis de ambiente:

env

DATABASE_URL="url-do-banco"
NODE_ENV="development"
PRIVATE_KEY="sua-chave-privada"
ACCESS_TOKEN_EXPIRATION="15m"
REFRESH_TOKEN_EXPIRATION="7d"
SWAGGER_DEV_URL="http://localhost:4242"
SWAGGER_PROD_URL="http://localhost:4242"

📚 Rodando as Migrations

Execute as migrations do Prisma para criar as tabelas no banco:

npm run prisma

🚀 Execução do Servidor Inicie o servidor de desenvolvimento com:

npm run dev

📑 Documentação da API

A documentação interativa das rotas está disponível via Swagger, acessível após iniciar o servidor:

📄 http://localhost:4242

A documentação inclui:

Descrição de todas as rotas e seus métodos (GET, POST, PATCH, DELETE)

Parâmetros esperados

Modelos de resposta

Testes interativos diretamente pela interface

📂 Estrutura de Pastas

src/
 ├── controllers/
 ├── services/
 ├── repositories/
 ├── middlewares/
 ├── routes/
 ├── schemas/
 ├── config/
 ├── prisma/
 ├── tests/
 ├── app.ts
 └── server.ts

📌 Endpoints Disponíveis

📄 Usuários

  • POST /usuarios — Cadastrar usuário

  • GET /usuarios — Listar usuários

  • PATCH /usuarios/:id — Atualizar usuário

🔐 Autenticação

  • POST /login — Login de usuário

  • DELETE /logout — Logout

  • POST /refresh — Renovação de token

🏢 Salas

  • POST /salas — Cadastrar sala

  • GET /salas — Listar salas

  • PATCH /salas/:id — Atualizar sala

📆 Reservas

  • POST /reservas — Cadastrar reserva

  • GET /reservas — Listar reservas

  • PATCH /reservas/:id — Atualizar reserva

  • DELETE /reservas/:id — Cancelar reserva

📦 Pacotes e Dependências Notáveis

  • Express

  • Prisma

  • Zod

  • Swagger

  • Jest

📷 Demonstrações (opcional)

Caso deseje, adicione prints ou GIFs demonstrando:

O Swagger aberto

Exemplo de JSON de resposta

Consulta de reservas

Criação de nova reserva

📝 Considerações Finais

ainda pensando

👨‍💻 Autor

Kelve Oliveira 🔗 https://gitlab.fslab.dev/Kelve.Oliveira

📃 Licença Este projeto é de uso acadêmico e livre para fins educacionais.