# Manual do Administrador ## Visão Geral O painel de administrador permite gerenciar todos os aspectos da plataforma de cursos, incluindo usuários, turmas, provas, pagamentos e arquivos. ## Acesso - **URL**: `/admin/dashboard` - **Role Necessária**: `admin` --- ## Funcionalidades ### 1. Dashboard Principal **Rota**: `/admin/dashboard` Página inicial com cards de navegação para todas as funcionalidades administrativas. --- ### 2. Gerenciamento de Tipos de Turma **Rota**: `/admin/dashboard/classTypes` #### Funcionalidades - Criar novos tipos de turma (ex: "Starters", "Movers") - Definir faixa etária - Definir preço mensal - Gerenciar arquivos por tipo de turma #### Como Testar 1. Acesse `/admin/dashboard/classTypes` 2. Clique em "Novo Tipo de Turma" 3. Preencha nome, idade mínima, idade máxima e preço 4. Salve 5. **Esperado**: Tipo de turma aparece na lista #### Campos - `name`: Nome do tipo de turma - `minAge`: Idade mínima - `maxAge`: Idade máxima - `price`: Preço mensal --- ### 3. Gerenciamento de Turmas **Rota**: `/admin/dashboard/class` #### Funcionalidades - Criar novas turmas - Atribuir professores - Definir horário e dias da semana - Ativar/desativar turmas - Gerenciar alunos matriculados - Upload de materiais #### Como Testar 1. Acesse `/admin/dashboard/class` 2. Clique em "Nova Turma" 3. Selecione o tipo de turma 4. Adicione professores (multi-select) 5. Defina os dias da semana 6. Salve 7. **Esperado**: Turma criada e visível na lista #### Campos - `classType`: Tipo de turma (obrigatório) - `teachers`: Professores (pode ter vários) - `schedule`: Horário das aulas - `days`: Dias da semana - `active`: Status ativo/inativo --- ### 4. Gerenciamento de Usuários **Rota**: `/admin/dashboard/users` #### Funcionalidades - Visualizar todos os usuários - Editar informações de usuários - Gerenciar roles (admin, teacher, student, parent) - Vincular responsáveis a estudantes - Excluir usuários #### Como Testar 1. Acesse `/admin/dashboard/users` 2. Clique no ícone de editar em um usuário 3. Altere as roles marcando/desmarcando checkboxes 4. Para vincular responsável, selecione na lista 5. Salve 6. **Esperado**: Roles atualizadas, vínculos criados #### Roles Disponíveis - `admin`: Acesso completo ao painel administrativo - `teacher`: Acesso a turmas atribuídas - `student`: Acesso a turmas matriculadas - `parent`: Acesso a dados dos filhos vinculados --- ### 5. Gerenciamento de Pagamentos **Rotas**: - `/admin/dashboard/payments` - Visão geral - `/admin/dashboard/payments/by-class` - Por turma #### Funcionalidades - Criar obrigações de pagamento para alunos - Aprovar/rejeitar pagamentos - Visualizar comprovantes - Estatísticas de pagamentos #### Como Testar - Criar Obrigação 1. Acesse `/admin/dashboard/payments` 2. Clique em "Nova Obrigação" 3. Selecione o aluno 4. Digite o valor e data de vencimento 5. Salve 6. **Esperado**: Obrigação aparece na lista do aluno #### Como Testar - Aprovar Pagamento 1. Na lista de pagamentos, encontre um pendente 2. Clique para ver detalhes 3. Visualize o comprovante 4. Clique em "Aprovar" ou "Rejeitar" 5. **Esperado**: Status atualizado #### Status de Pagamento - `pending`: Aguardando aprovação - `verified`: Pagamento aprovado - `rejected`: Pagamento rejeitado --- ### 6. Provas e Tarefas **Rotas**: - `/admin/dashboard/exams` - Gerenciar provas - `/admin/dashboard/exam-templates` - Templates de prova - `/admin/dashboard/assignments` - Atribuir provas a turmas - `/admin/dashboard/statistics/exams` - Estatísticas #### Funcionalidades - Criar templates de provas reutilizáveis - Adicionar perguntas (múltipla escolha, texto) - Atribuir provas a turmas - Definir data/hora de início e fim - Configurar tentativas permitidas - Ver resultados e estatísticas #### Como Testar - Criar Template 1. Acesse `/admin/dashboard/exam-templates` 2. Clique em "Novo Template" 3. Digite título e descrição 4. Adicione perguntas: - Pergunta de múltipla escolha: adicione opções e marque a correta - Pergunta de texto: apenas o enunciado 5. Salve 6. **Esperado**: Template criado #### Como Testar - Atribuir Prova 1. Acesse `/admin/dashboard/assignments` 2. Clique em "Nova Atribuição" 3. Selecione o template 4. Selecione a turma 5. Defina data/hora início e fim 6. Configure tentativas permitidas 7. Salve 8. **Esperado**: Prova aparece para os alunos da turma --- ### 7. Categorias de Arquivos **Rota**: `/admin/dashboard/categories` #### Funcionalidades - Criar categorias para organizar arquivos - Ex: "Material de Aula", "Lição de Casa", "Provas Antigas" #### Como Testar 1. Acesse `/admin/dashboard/categories` 2. Clique em "Nova Categoria" 3. Digite o nome 4. Salve 5. **Esperado**: Categoria disponível ao fazer upload de arquivos --- ### 8. Gerenciamento de Arquivos **Rotas**: - `/admin/dashboard/files` - Lista de arquivos - `/admin/dashboard/files/add` - Upload de arquivo - `/admin/dashboard/files/[id]` - Editar arquivo #### Funcionalidades - Fazer upload de arquivos - Associar a turmas ou tipos de turma - Categorizar arquivos - Gerenciar permissões #### Como Testar 1. Acesse `/admin/dashboard/files/add` 2. Digite o nome do arquivo 3. Selecione o arquivo no computador 4. Selecione a categoria 5. Associe a uma turma ou tipo de turma (opcional) 6. Salve 7. **Esperado**: Arquivo disponível para download na turma --- ## Checklist de Testes - [ ] Criar tipo de turma - [ ] Criar turma com professores - [ ] Criar usuário com role student - [ ] Criar usuário com role teacher - [ ] Vincular responsável a estudante - [ ] Matricular estudante em turma - [ ] Criar obrigação de pagamento - [ ] Aprovar pagamento - [ ] Criar template de prova - [ ] Atribuir prova a turma - [ ] Fazer upload de material para turma --- ## Possíveis Problemas ### Usuário não acessa o admin - **Verifique**: O usuário tem a role `admin`? - **Solução**: Edite o usuário em `/admin/dashboard/users` ### Turma não aparece para o professor - **Verifique**: O professor está atribuído à turma? - **Solução**: Edite a turma em `/admin/dashboard/class` ### Aluno não vê a prova - **Verifique**: Data/hora da atribuição está correta? - **Verifique**: Aluno está matriculado na turma? - **Solução**: Verifique a atribuição em `/admin/dashboard/assignments`