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: utilizarGET /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).