Pular para o conteúdo principal

Backlog

Visão ONG

ÉPICO 1: Acesso e Gerenciamento da Conta da ONG

História: Login da ONG

  • Descrição: Autenticação via API externa

Este sistema não realiza o processo de login diretamente. A autenticação do usuário é delegada a uma API externa responsável por validar as credenciais e retornar as informações do usuário previamente registrado. Dessa forma, o sistema apenas consome o endpoint de autenticação, recebendo como resposta os dados do usuário autenticado, sem necessidade de gerenciar credenciais ou sessões internamente.

ÉPICO 2: Cadastro e Gerenciamento de Cursos

História: Cadastrar Novo Curso

  • Descrição: Como ONG, quero cadastrar novos cursos com dados detalhados para oferecer oportunidades educativas à comunidade.
  • Tarefas:
    • Tela de cadastro com campos: nome, descrição, categoria, carga horária, certificado (sim/não), cronograma, número de vagas (Frontend)
    • Seleção de professor responsável (Frontend)
    • Seleção de local/ambiente (Frontend)
    • Validação de períodos e horários (conflitos) (Frontend)
    • Botão "Salvar curso" com feedback (Frontend)
    • Criar model Curso com os campos necessários. (Backend)
    • Criar model Curso com campos: nome, descrição, categoria, carga horária, certificado, cronograma, vagas (Backend)
    • Criar model de vínculo entre Curso e Professor (Backend)
    • Validar conflitos de horários no backend (Backend)
    • Criar endpoint POST /cursos (restrito à ONG logada) (Backend)
    • Implementar lógica de validação de curso e vinculação ao professor (Backend)

História: Visualizar Cursos Existentes

  • Descrição: Como ONG, quero ver a lista de cursos ativos, futuros e encerrados para gerenciar o andamento de cada um.
  • Tarefas:
    • Tabela com filtros: por status, nome, professor (Frontend)
    • Ícones de status (planejado, em andamento, concluído) (Frontend)
    • Acesso ao detalhe do curso com opções de edição e cancelamento (Frontend)
    • Endpoint GET /cursos?status=ativo (Backend)
    • Adicionar filtros por status, nome, professor (Backend)
    • Endpoint GET /cursos/:id para detalhes com opções de edição/cancelamento (Backend)
    • Endpoint PATCH /cursos/:id (Backend)

ÉPICO 3: Cadastro e Gerenciamento de Professores

História: Cadastrar Professor

  • Descrição: Como ONG, quero cadastrar um novo professor com seus dados para associá-lo a cursos conforme sua área.
  • Tarefas:
    • Tela com campos: nome completo, CPF, e-mail, telefone, área de atuação, experiência, disponibilidade, foto (opcional) (Frontend)
    • Validação de dados e envio ao backend (Backend)
    • Vinculação direta a cursos ativos (Backend)
    • Criar model Professor com campos: nome, CPF, email, telefone, área, disponibilidade etc. (Backend)
    • Endpoint POST /professores com validação (Backend)
    • Relacionar professor com cursos (Backend)

História: Editar Dados de Professores

  • Descrição: Como ONG, quero editar os dados de um professor para manter as informações sempre atualizadas.
  • Tarefas:
    • Botão de "Editar" nos detalhes do professor (Frontend)
    • Atualização parcial dos dados (Frontend)
    • Logs de atualização (opcional) (Backend)
    • Endpoint PATCH /professores/:id (Backend)
    • Lógica de logs de atualização (opcional) (Backend)

ÉPICO 4: Matrícula e Cadastro de Alunos

História: Cadastrar Aluno no Curso

  • Descrição: Como ONG, quero registrar os alunos em cada curso para iniciar turmas completas.
  • Tarefas:
    • Formulário de matrícula com:
      • Dados pessoais (nome, idade, CPF, RG, telefone) (Frontend)
      • Dados escolares (escolaridade, instituição) (Frontend)
      • Dados socioeconômicos: renda familiar, número de moradores, ocupação dos responsáveis, situação de moradia etc. (Frontend)
    • Opção de upload de documentos (opcional) (Frontend)
    • Feedback visual de sucesso/erro (Frontend)
    • Criar model Aluno com todos os campos requeridos (pessoais, escolares, socioeconômicos) (Backend)
    • Endpoint POST /alunos (Backend)
    • Criar model Matricula para relacionar Aluno x Curso (Backend)
    • Validar dados e gerar resposta clara (Backend)

História: Visualizar Lista de Alunos

  • Descrição: Como ONG, quero acessar a lista de alunos de cada curso para acompanhar presença e participação.
  • Tarefas:
    • Tabela com nome, status de matrícula, frequência, justificativas (Frontend)
    • Filtro por turma (Frontend)
    • Exportar lista em CSV ou PDF (Frontend)
    • Endpoint GET /cursos/:id/alunos (Backend)
    • Incluir frequência e status de matrícula (Backend)
    • Endpoint GET /alunos/export?formato=csv (Backend)

ÉPICO 5: Acompanhamento e Relatórios

História: Acompanhar Execução dos Cursos

  • Descrição: Como ONG, quero visualizar o andamento das aulas e relatórios dos professores para garantir que os cursos estão sendo ministrados.
  • Tarefas:
    • Tela com timeline do curso (datas das aulas) (Frontend)
    • Exibição de relatórios por aula (texto + fotos) (Frontend)
    • Indicador de aulas sem relatório ou sem frequência registrada (Frontend)
    • Endpoint GET /cursos/:id/timeline (Backend)
    • Endpoint GET /aulas/:id/relatorio (Backend)
    • Indicar aulas sem frequência ou relatório (Backend)

História: Gerar Relatórios da ONG

  • Descrição: Como ONG, quero exportar dados de cursos, alunos e professores para prestar contas a patrocinadores e órgãos públicos.
  • Tarefas:
    • Opções de filtro por período, curso e status (Frontend)
    • Geração de relatórios CSV/PDF (Frontend)
    • Layout com gráficos simples (turmas ativas, perfil dos alunos, etc.) (Frontend)
    • Endpoint GET /relatorios?filtros (Backend)
    • Exportação em CSV/PDF (Backend)
    • Gerar dados agregados (perfil alunos, status de cursos, etc.) (Backend)

ÉPICO 6: Responsividade e UX para ONG

  • Tarefas:
    • Criar versão responsiva das telas de gerenciamento (Frontend)
    • Testes de usabilidade em celular e tablet (Frontend)
    • Adaptação de formulários longos (alunos) para melhor experiência mobile (Frontend)

ÉPICO 7: Permissões e Segurança

  • Tarefas:
    • Garantir que ONGs só visualizam seus próprios cursos e dados (Backend)
    • Tokens de autenticação separados por perfil (Backend)
    • Feedbacks claros ao tentar acessar recursos restritos (Backend)
    • Middleware para garantir que ONG acesse apenas seus cursos, professores, alunos (Backend)
    • Tokens com escopos distintos (ONG, professor, admin) (Backend)
    • Lógica de fallback de erros: "acesso negado", "não autorizado" (Backend)

Visão Professor

ÉPICO 8: Autenticação e Acesso

História: Login de Usuário

  • Descrição: Autenticação via API externa

Este sistema não realiza o processo de login diretamente. A autenticação do usuário é delegada a uma API externa responsável por validar as credenciais e retornar as informações do usuário previamente registrado. Dessa forma, o sistema apenas consome o endpoint de autenticação, recebendo como resposta os dados do usuário autenticado, sem necessidade de gerenciar credenciais ou sessões internamente.

ÉPICO 9: Visão Geral do Professor (Dashboard)

História: Visualizar Calendário de Aulas

  • Descrição: Como professor, quero ver meu calendário de aulas da semana para me organizar e acessar rapidamente cada encontro.
  • Tarefas:
    • Criar componente de calendário (grid por semana) (Frontend)
    • Inserir cards de aula por dia/horário (Frontend)
    • Destacar aula atual (Frontend)
    • Linkar cada card à tela de detalhes da aula (Frontend)
    • Endpoint GET /professores/:id/calendario (Backend)
    • Buscar aulas por período (Backend)
    • Incluir status de cada aula (pendente, realizada, etc.) (Backend)

ÉPICO 10: Gestão de Aulas

História: Visualizar Detalhes da Aula

  • Descrição: Como professor, quero acessar os detalhes de cada aula para planejar, registrar presença e descrever o encontro.
  • Tarefas:
    • Criar layout com tabs: [Resumo da Aula | Frequência | Relatório] (Frontend)
    • Exibir nome do curso, horário, alunos matriculados (Frontend)
    • Incluir botão de registrar frequência (Frontend)
    • Campo para relatório e upload de imagens (Frontend)
    • Endpoint GET /aulas/:id (Backend)
    • Incluir tabs de dados: resumo, frequência, relatório (Backend)
    • Endpoint POST /aulas/:id/relatorio (Backend)
    • Suporte para upload de imagem (Backend)

ÉPICO 11: Frequência e Justificativas

História: Registrar Frequência dos Alunos

  • Descrição: Como professor, quero marcar presença dos alunos para manter o controle da participação.
  • Tarefas:
    • Criar lista de alunos com checkbox de presença (Frontend)
    • Indicar alunos com justificativa pendente (Frontend)
    • Botão para submeter frequência (Frontend)
    • Endpoint POST /aulas/:id/frequencia (Backend)
    • Model FrequenciaAluno (Backend)
    • Lógica de submissão com múltiplos alunos (Backend)

História: Visualizar e Incluir Justificativas

  • Descrição: Como professor, quero ver justificativas de faltas e poder incluir observações para manter o registro atualizado.
  • Tarefas:
    • Exibir justificativas recebidas com opções (Aceitar/Rejeitar) (Frontend)
    • Criar modal para nova justificativa (Frontend)
    • Botão de salvar justificativa (Frontend)
    • Endpoint GET /aulas/:id/justificativas (Backend)
    • Endpoint POST /justificativas (Backend)
    • Ações de aceitar/rejeitar: PATCH /justificativas/:id (Backend)

ÉPICO 12: Cursos e Turmas

História: Visualizar Cursos Ministrados

  • Descrição: Como professor, quero acessar os cursos que estou ministrando para acompanhar a turma, os conteúdos e relatórios.
  • Tarefas:
    • Tela de listagem de cursos com filtros (nome, status) (Frontend)
    • Botão para ver detalhes de cada curso (Frontend)
    • Exibir alunos matriculados por curso (Frontend)
    • Incluir acesso ao histórico de aulas do curso (Frontend)
    • Endpoint GET /professores/:id/cursos (Backend)
    • Incluir histórico de aulas por curso: GET /cursos/:id/aulas (Backend)

ÉPICO 13: Histórico de Aulas

História: Consultar Histórico de Aulas

  • Descrição: Como professor, quero ver o histórico completo das aulas que ministrei para acompanhar o progresso da turma.
  • Tarefas:
    • Tela de listagem com data, curso e status da aula (Frontend)
    • Acesso aos detalhes e relatórios arquivados (Frontend)
    • Endpoint GET /professores/:id/aulas/historico (Backend)
    • Incluir filtros por data/curso (Backend)
    • Incluir link para relatórios arquivados (Backend)

ÉPICO 14: Lista de Alunos

História: Visualizar Lista de Alunos

  • Descrição: Como professor, quero acessar a lista de alunos de cada curso para acompanhar presença e participação.
  • Tarefas:
    • Criar tabela com nome, contato e status de matrícula (Frontend)
    • Adicionar filtros por turma (Frontend)
    • Exportar lista em CSV ou PDF (Frontend)
    • Endpoint GET /professores/:id/cursos/:cursoId/alunos (Backend)
    • Incluir frequência e status de matrícula (Backend)
    • Endpoint GET /alunos/export?formato=csv (Backend)

Mobile: Adaptação das Telas

  • Tarefas específicas de responsividade e UX mobile:
    • Adaptar calendário para rolagem lateral (Frontend)
    • Redesenhar modais para telas pequenas (Frontend)
    • Adicionar menu hamburguer com acesso às seções principais (Frontend)
    • Backend deve expor os mesmos endpoints, com suporte a retorno simplificado se necessário via query param (ex: ?mobile=true) (Backend)