- Acesse o diretório do projeto:
cd client- Utilize o Node.js na versão
v20.16.0ou execute:
nvm use- Rode as depencias do projeto:
npm ci- Inicie o projeto:
npm run dev- Acesse o diretório do projeto:
cd api- Utilize o Node.js na versão
v20.16.0ou execute:
nvm use- Rode as depencias do projeto:
npm ci- Configure o
.envcom base no exemplo fornecido em.env.example - Execute a seed para gerar alguns usuários pré-definidos.
npm run seed- Inicie o projeto:
npm run dev- Usuário Comum:
user@tech.com|1234 - Usuário Gerente:
manager@tech.com|1234 - Usuário Admin:
admin@tech.com|1234
- Criar interface de login e armazenamento do JWT.
- Criar restrições visuais baseadas no nível de acesso do usuário.
- Criar formulário de cadastro/edição de usuário com validação.
- Exibir mensagens de erro quando o usuário tentar acessar recursos sem permissão.
- Permissões verificadas no front-end.
- Next.JS + Tailwind CSS + Context API
- Fetch API para integração
$ tree
.
├── src
│ ├── db
│ └── modules
│ └── presentation
│ └── utils
│ └── app.module.ts
│ └── main.ts
├──.env.exempledb: Contém toda a infraestrutura do banco de dados, incluindo migrations, seed e configuração inicial do TypeORM.
modules: Diretório onde os controllers e services estão organizados de forma modular, seguindo suas respectivas responsabilidades.
presentation: Contém utilitários para lidar com as extremidades de uma solicitação HTTP, como requisições (request) e respostas (response).
utils: Centraliza funções utilitárias e constantes importantes do projeto.
- Criar entidade
Userscomid,name,email,passworderole; - Implementar
- CRUD para a tabela
Users
- CRUD para a tabela
- Testes unitários nos arquivos mais sensíveis.
- Criar um servidor Nest.JS + TypeORM;
- Utilizar o PostgreSQL como Banco de dados;
- Utilizar o JWT para autenticação de usuários;
- Utilizar o CASL para o controle de permissões.
- Utilizar o bcrypt como encriptador de senhas. Ao salvar no Banco;
- Sistema validado com JWT em rotas privadas.
src/modules/auth/auth.guard.ts- Usuário não autenticado, retorno do status code
401 (Unauthorized.)
- Usuário não autenticado, retorno do status code
- Controle de permissões:
- Usuário não autenticado não acessa rotas privadas. Como: Listagem de Usuários.
- Usuário comum
"type": "user"não tem acesso a listagem de usuários. - Usuário gerente
"type": "manager"não tem acesso a alteração de cargorole- Retorno do status code
403 (Forbidden)
- Retorno do status code
- Usuário administador tem acesso à tudo.
- Usuário não pode se cadastrar com um email existente.
- Retorno do status code
400 (Email already in use)
- Retorno do status code
typeorm migration:create ./[MIGRATION_PATH_DIR]/[MIGRATION_FILE_NAME]MIGRATION_PATH_DIR: src/db/typeorm/migrations