API para gerenciamento de locação de ferramentas
  • HTML 80%
  • JavaScript 19.9%
  • CSS 0.1%
Find a file
2025-03-17 11:40:57 -04:00
coverage atualizaçao no readme 2025-03-17 11:40:57 -04:00
deployment configurando cicd 2025-02-19 19:38:54 -04:00
documentacao arrumando documentacao 2025-02-12 12:15:31 -04:00
src correcao dos testes 2025-03-05 08:48:21 -04:00
.dockerignore configurando cicd 2025-02-18 22:24:09 -04:00
.env.EXAMPLE atualização do .env.EXAMPLE 2025-03-05 09:50:52 -04:00
.gitignore configurando cicd 2025-02-19 19:38:54 -04:00
.gitlab-ci.yml configurando cicd 2025-02-19 19:42:07 -04:00
babel.config.cjs configurando cicd 2025-02-19 19:38:54 -04:00
DockerFile configurando cicd 2025-02-19 19:21:57 -04:00
jest.setup.js configurando cicd 2025-02-19 19:38:54 -04:00
package-lock.json atualizaçao no readme 2025-03-17 11:40:57 -04:00
package.json correcao dos testes 2025-03-05 08:48:21 -04:00
README.md atualizaçao no readme 2025-03-17 11:40:57 -04:00
server.js configurando cicd 2025-02-19 19:38:54 -04:00

🌐 API Gerenciamento de Locação de Ferramentas

Este projeto é uma API para gerenciamento de locação de ferramentas. A API permite gerenciar usuários, grupos, clientes, categorias, revisões, ferramentas, locações, rotas e autenticação. A documentação da API é gerada automaticamente usando Swagger.

🚀 Tecnologias

  • JavaScript
  • NodeJS
  • ExpressJS
  • MongoDB
  • Docker

Funcionalidades

  • Gerenciamento de usuários
  • Gerenciamento de grupos
  • Gerenciamento de clientes
  • Gerenciamento de categorias
  • Gerenciamento de revisões
  • Gerenciamento de ferramentas
  • Gerenciamento de locações
  • Gerenciamento de rotas
  • Autenticação de usuários
  • Recuperação de senha
  • Documentação da API com Swagger

📚 Documentação das Rotas da API

Middleware de Autenticação

Todas as rotas, exceto as de login, utilizam o AuthMiddleware para garantir que apenas usuários autenticados tenham acesso.


Categorias

  • GET /categorias
    Lista todas as categorias cadastradas.

  • GET /categorias/:id
    Lista uma categoria específica com base no id fornecido.

  • POST /categorias
    Cria uma nova categoria.

  • PUT /categorias/:id
    Atualiza completamente uma categoria com base no id fornecido.

  • DELETE /categorias/:id
    Deleta uma categoria com base no id fornecido.


Clientes

  • GET /clientes
    Lista todos os clientes cadastrados.

  • GET /clientes/:id
    Lista um cliente específico com base no id fornecido.

  • POST /clientes
    Cria um novo cliente.

  • PUT /clientes/:id
    Atualiza completamente um cliente com base no id fornecido.

  • DELETE /clientes/:id
    Deleta um cliente com base no id fornecido.


Ferramentas

  • GET /ferramentas
    Lista todas as ferramentas cadastradas.

  • GET /ferramentas/:id
    Lista uma ferramenta específica com base no id fornecido.

  • POST /ferramentas
    Cria uma nova ferramenta.

  • PUT /ferramentas/:id
    Atualiza completamente uma ferramenta com base no id fornecido.

  • DELETE /ferramentas/:id
    Deleta uma ferramenta com base no id fornecido.


Grupos

  • GET /grupos
    Lista todos os grupos cadastrados.

  • GET /grupos/:id
    Lista um grupo específico com base no id fornecido.

  • POST /grupos
    Cria um novo grupo.

  • PUT /grupos/:id
    Atualiza completamente um grupo com base no id fornecido.

  • DELETE /grupos/:id
    Deleta um grupo com base no id fornecido.


Locações

  • GET /locacoes
    Lista todas as locações cadastradas.

  • GET /locacoes/:id
    Lista uma locação específica com base no id fornecido.

  • POST /locacoes
    Cria uma nova locação.

  • PUT /locacoes/:id
    Atualiza completamente uma locação com base no id fornecido.

  • DELETE /locacoes/:id
    Deleta uma locação com base no id fornecido.


Login

  • POST /login
    Realiza o login do usuário.

  • POST /logout
    Realiza o logout do usuário.

  • POST /token/revoke
    Revoga o token de acesso do usuário.

  • POST /token
    Atualiza o token de acesso do usuário.


Recuperar Senha

  • POST /recuperarsenha
    Inicia o processo de recuperação de senha.

  • PUT /recuperarsenha/:token
    Altera a senha utilizando o token de recuperação.


Revisões

  • GET /revisoes
    Lista todas as revisões cadastradas.

  • GET /revisoes/:id
    Lista uma revisão específica com base no id fornecido.

  • POST /revisoes
    Cria uma nova revisão.

  • PUT /revisoes/:id
    Atualiza completamente uma revisão com base no id fornecido.

  • DELETE /revisoes/:id
    Deleta uma revisão com base no id fornecido.


Rotas

  • GET /rotas
    Lista todas as rotas cadastradas.

  • GET /rotas/:id
    Lista uma rota específica com base no id fornecido.

  • POST /rotas
    Cria uma nova rota.

  • PUT /rotas/:id
    Atualiza completamente uma rota com base no id fornecido.

  • DELETE /rotas/:id
    Deleta uma rota com base no id fornecido.


Usuários

  • GET /usuarios
    Lista todos os usuários cadastrados.

  • GET /usuarios/:id
    Lista um usuário específico com base no id fornecido.

  • POST /usuarios
    Cria um novo usuário.

  • PUT /usuarios/:id
    Atualiza completamente um usuário com base no id fornecido.

  • DELETE /usuarios/:id
    Deleta um usuário com base no id fornecido.

⚙️ Configurações

  1. Clone o repositório:

    git clone https://gitlab.fslab.dev/AminahMakhoul1/api-gerenciamento.git
    
  2. Instale as dependências:

    cd seu-repositorio
    npm install
    npm install bcrypt
    npm install jest
    
  3. Para produção configure as variáveis de ambiente no arquivo .env:

    # Uso somente para produção
    MONGO_URI=mongodb+srv://aminahmakhoul:972831@aminahmakhoul.9jtambb.mongodb.net/tools
    
  4. Para ambiente de testes configure as variáveis no arquivo .env

    # Usar somente para ambiente de testes(banco paralelo)
    MONGO_URI_TEST=mongodb+srv://aminahmakhoul:972831@aminahmakhoul.9jtambb.mongodb.net/tools_test
    
  5. Inicie o servidor:

    npm run dev
    
  6. Acesse o Localhost

    http://localhost:3030
    

🌐 Acesso ao Projeto

A documentação da API é gerada automaticamente usando Swagger e pode ser acessada no link http://localhost:3030.

O projeto pode ser acessado em produção através do seguinte link https://api-gerenciamento.app.fslab.dev/#/

🔄 Testes

Para rodar os testes, execute:

npm run test  # para rodar todos os testes

npm run test src/tests/unit  # para rodar os testes de unidade

npm run test src/tests/integration # para rodar os testes de integração

📝 Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

👩‍💻 Autor

Este projeto foi desenvolvido por:

Aminah Makhoul
Aminah Makhoul