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.
- Node.js
- Nest.js
- MySql
- JWT (JSON Web Tokens) para autenticação
- Typeorm (para interação com o MySql)
-
Autenticação e Autorização
- Implementação de autenticação com JWT.
- Autorização baseada em roles: Admin e User.
-
Gestão de Empresas (Tenants)
- Criar, atualizar, visualizar e excluir empresas.
- Cada empresa tem seus próprios usuários e tarefas.
-
Gestão de Usuários
- Registrar usuários em uma empresa.
- Atribuir roles (Admin, User).
- Visualizar, atualizar e excluir usuários.
-
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.
Para rodar este projeto em sua máquina local, siga os passos abaixo:
-
Clone o repositório:
git clone https://github.com/seu-usuario/task-management-api.git cd task-management-api -
Instale as dependências:
npm install
-
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 -
Subir o container do banco de dados com Docker Compose:
docker-compose up -d
-
Rodar as migrations:
npm run migration:run
-
Executar a aplicação:
npm start
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)
A documentação completa da API estará disponível no endpoint:
/api-docs