Qualquer mudança no banco de dados deve ser feito em um novo migration, pode ser baseado no 1595198468293_exercises_definitions.ts que modifica uma tabela existente
O módulo admin é o mais simples, incluindo apenas um gerenciamento de instrutores, usuários e cursos
Tarefas:
Aprovar / Reprovar instrutor (e no caso de aprovar, remover o InstructorRequest e adicionar o Instructor em uma DB transaction
Temos que poder bloquear usuários ou instrutores se eles estiverem fazendo bagunça (inclui mudanças no banco de dados)
No caso de bloquear um usuário, as avaliações desse usuário não devem valer mais, no caso de um professor, os cursos devem ser todos mudados para is_blocked
Devemos poder bloquear um curso, uma aula ou um exercício, todos eles devem ser passíveis de serem bloqueados, avisando o instrutor, e podendo ser atualizados para desbloquear. (Nesse caso, a atualização para desbloquear é automática, liberando a aula, porém avisando um Admin, que irá no futuro revisar novamente, e poderá excluir definitivamente um curso/aula/exercício se seguir violando as regras/termos de serviço)
Um admin deve poder cadastrar novos roles, e setar os usuários como Admin e outros roles (exceto como Instructor)
O admin também deve poder remover roles de qualquer role igual ou menor que ele (em um futuro devemos ter alguma forma de definir os poderes de um admin, que poderia ser um número simples por agora como "power", inclusive podemos usar BitMask para isso)
Idealmente devemos ter um dashboard simples para o Admin, cacheado a cada hora ou 3 horas, com informações como:
-- Total usuários
-- Novos usuários nas ultimas 24 horas
-- Total instrutores
-- Total cursos
-- Total aulas visualizadas
-- Total rates
-- ...? fique a vontade pra inovar
Obs:
Tarefas:
Aprovar / Reprovar instrutor (e no caso de aprovar, remover o
InstructorRequest
e adicionar oInstructor
em uma DB transactionTemos que poder bloquear usuários ou instrutores se eles estiverem fazendo bagunça (inclui mudanças no banco de dados) No caso de bloquear um usuário, as avaliações desse usuário não devem valer mais, no caso de um professor, os cursos devem ser todos mudados para
is_blocked
Devemos poder bloquear um curso, uma aula ou um exercício, todos eles devem ser passíveis de serem bloqueados, avisando o instrutor, e podendo ser atualizados para desbloquear. (Nesse caso, a atualização para desbloquear é automática, liberando a aula, porém avisando um Admin, que irá no futuro revisar novamente, e poderá excluir definitivamente um curso/aula/exercício se seguir violando as regras/termos de serviço)
Um admin deve poder cadastrar novos roles, e setar os usuários como Admin e outros roles (exceto como Instructor) O admin também deve poder remover roles de qualquer role igual ou menor que ele (em um futuro devemos ter alguma forma de definir os poderes de um admin, que poderia ser um número simples por agora como "power", inclusive podemos usar BitMask para isso)
Idealmente devemos ter um dashboard simples para o Admin, cacheado a cada hora ou 3 horas, com informações como: -- Total usuários -- Novos usuários nas ultimas 24 horas -- Total instrutores -- Total cursos -- Total aulas visualizadas -- Total rates -- ...? fique a vontade pra inovar