Skip to content

Repository files navigation

Projeto de Gestão de Empresas

Este projeto implementa um sistema de gestão de empresas com autenticação e autorização baseadas em roles, permitindo a gestão de empresas, usuários e tarefas.

Tabela de Conteúdos

Tecnologias Utilizadas

  • Node.js
  • Nest.js
  • MySql
  • JWT (JSON Web Tokens) para autenticação
  • Typeorm (para interação com o MySql)

Funcionalidades

  1. Autenticação e Autorização

    • Implementação de autenticação com JWT.
    • Autorização baseada em roles: Admin e User.
  2. Gestão de Empresas (Tenants)

    • Criar, atualizar, visualizar e excluir empresas.
    • Cada empresa tem seus próprios usuários e tarefas.
  3. Gestão de Usuários

    • Registrar usuários em uma empresa.
    • Atribuir roles (Admin, User).
    • Visualizar, atualizar e excluir usuários.
  4. Gestão de Tarefas

    • Criar, atualizar, visualizar e excluir tarefas.
    • Cada tarefa possui um título, descrição, status (pendente, em progresso, concluída) e prazo.

Configuração do Ambiente

Para rodar este projeto em sua máquina local, siga os passos abaixo:

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/task-management-api.git
    cd task-management-api
  2. Instale as dependências:

    npm install
  3. Configure as variáveis de ambiente:

     PORT=3001
    
     JWT_SECRET=at-secret
    
     MYSQL_HOST=localhost
     MYSQL_PORT=3306
     MYSQL_DB=task_management
     MYSQL_USER=elves
     MYSQL_PASSWORD=BeIFT10>@x
  4. Subir o container do banco de dados com Docker Compose:

    docker-compose up -d
  5. Rodar as migrations:

    npm run migration:run
  6. Executar a aplicação:

    npm start

Cadastro de Empresa e Usuário Admin

Após rodar o projeto, é necessário cadastrar uma empresa utilizando o endpoint POST /tenants. Ao cadastrar a primeira empresa, um usuário Admin será criado automaticamente para essa empresa, e você estará autorizado a acessar as funcionalidades da API.

Importante: Para acessar os recursos, é necessário enviar o token gerado no login (endpoint POST /auth/login)

Documentação da API

A documentação completa da API estará disponível no endpoint:

 /api-docs

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages