Pular para conteúdo

US3.1

Listagem de Estudantes Aprovados (RF13)

História de Usuário

Como organização, quero visualizar a lista de estudantes aprovados para cada atividade de voluntariado para gerenciar o acompanhamento e a presença.


Rastreabilidade

Item Código / Referência
User Story US3.1
Requisito Funcional RF13 — Listar aprovados
Característica de Produto CP03 — Acompanhamento e Certificação Acadêmica
Requisitos Não-Funcionais RNF04 (responsivo iOS/Android), RNF08 (imutabilidade de certificados)
Release Planejada R4 — Certificação

Descrição

Implementar a funcionalidade que permite à organização visualizar a relação de estudantes aprovados em cada vaga de voluntariado. Esta listagem serve como base para o registro de frequência (RF14) e a posterior emissão de certificados (RF15). A organização precisa saber exatamente quem foi aprovado para cada atividade antes de registrar a presença e atestar a carga horária cumprida. O escopo é full-stack.


Critérios de Aceite (BDD / Gherkin)

Cenário 1: Listagem de aprovados de uma vaga

Dado que a vaga "Apoio em Eventos" possui 5 candidaturas, sendo 3 aprovadas e 2 recusadas
Quando a organização acessa a tela de aprovados da vaga
Então o sistema exibe apenas os 3 estudantes aprovados, com nome, curso, universidade e data de aprovação

Cenário 2: Vaga sem aprovados

Dado que a vaga "Aulas de Reforço" não possui nenhuma candidatura aprovada
Quando a organização acessa a tela de aprovados
Então o sistema exibe a mensagem "Nenhum estudante aprovado para esta vaga"

Cenário 3: Seleção por vaga

Dado que a organização possui múltiplas vagas com diferentes conjuntos de aprovados
Quando seleciona uma vaga específica no seletor
Então o sistema exibe apenas os aprovados da vaga selecionada

Cenário 4: Organização tenta acessar aprovados de vaga alheia

Dado que a organização B tenta acessar a lista de aprovados de uma vaga pertencente à organização A
Quando envia a solicitação
Então o sistema recusa a operação e informa que a ação não é permitida


Regras de Negócio

  • Apenas a organização responsável pela vaga pode visualizar a lista de estudantes aprovados naquela vaga.
  • A listagem deve conter exclusivamente os estudantes cuja candidatura foi aprovada pela organização.
  • Para cada estudante aprovado, devem ser exibidos: nome completo, curso, universidade e a data em que a aprovação ocorreu.
  • A ordenação padrão da lista deve ser da aprovação mais recente para a mais antiga.

Requisitos Técnicos

  • Backend: Django + DRF. Endpoint GET /api/v1/organizations/me/opportunities/{id}/approved/ — listar aprovados de uma vaga específica. Alternativa: utilizar GET /api/v1/applications/?opportunity={id}&status=approved.
  • Segurança: Validar que opportunity.organization == request.user.organization_profile.
  • Frontend: React Native + Expo + NativeWind. Tela com seletor de vaga, lista de cards com dados dos estudantes aprovados.
  • Responsividade: Layout adaptável a iOS e Android (RNF04).
  • Testes: pytest para testar filtro por situação, permissões e formatação dos dados retornados.

Referências de Design

  • Protótipo Figma (Geral): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=0-1
  • Observação: A tela de listagem de aprovados precisa ser confirmada no protótipo Figma.

Dependências

  • Relacionada a: #24 (Avaliação de Candidaturas — RF11/US2.8), #13 (Cadastro de Organização — RF02/US1.2)
  • Bloqueada por: #24 (RF11 — Avaliar candidatura)
  • Bloqueia: #27 (Registro de Frequência — RF14/US3.2)

Notas

  • ICE Score: I=7 C=8 E=6 = 336 | MoSCoW: Must | Quadrante: Quick Win
  • RF13 é pré-requisito direto de RF14 (registrar frequência). Sem a lista de aprovados, a organização não sabe para quais estudantes deve registrar presença.
  • Esta funcionalidade consiste essencialmente em uma consulta filtrada de candidaturas aprovadas — implementação relativamente simples (E=6, ~5-7h).
  • Considerar adicionar a contagem de aprovados por vaga no painel principal da organização como métrica de engajamento.

Definição de Preparado (DoR)

Item de Verificação (Universal) Evidência / Rastreabilidade Situação
A história está bem descrita e com critérios de aceite? Documentada e alinhada com o escopo do MVP. ✔ Sim
Possui protótipos de interface necessários? Interface mapeada e disponível no Figma da equipe. ✔ Sim
A história é independente o suficiente para ser entregue? Cadeia de dependências resolvida (vide Matriz MVP). ✔ Sim
Foi estimada pela equipe? Estimada utilizando o método ICE Score. ✔ Sim

Definição de Pronto (DoD)

Pergunta Fundamental (Universal) Evidência de Implementação Status
O código foi implementado e revisado? Pull Request aprovado e fundido na branch principal. ✔ Sim
Coerente com o protótipo validado? O layout segue os componentes e tokens de design. ✔ Sim
Passou nos testes necessários? Testes (unitários/integração) executados e aprovados. ✔ Sim
A documentação está atualizada? Atualizada no repositório de requisitos. ✔ Sim

Critérios de Aceitação (CA)

  • Lista de aprovados: A organização acessa a tela de uma vaga e vê apenas os estudantes com candidatura aprovada, com nome, curso, universidade e data de aprovação.
  • Vaga sem aprovados: Se nenhuma candidatura foi aprovada, o sistema exibe "Nenhum estudante aprovado para esta vaga".
  • Seleção por vaga: A organização consegue selecionar qual vaga deseja visualizar e o sistema exibe apenas os aprovados daquela vaga específica.
  • Segurança: A organização não consegue ver os aprovados de vagas de outras organizações.

Acesso & Evidência

  • Código Homologado: Repositório Principal
  • Status de Conclusão: 100% Entregue (conforme Matriz de Completude).