US1.1
Cadastro de Estudantes Universitários (RF01)
História de Usuário
Como estudante universitário, quero me cadastrar na plataforma informando meus dados pessoais e académicos para poder buscar e me candidatar a vagas de voluntariado.
Rastreabilidade
| Item | Código |
|---|---|
| User Story | US1.1 |
| Requisito Funcional | RF01 — Cadastrar estudante |
| Característica de Produto | CP01 — Gestão de Usuários e Entidades |
| Requisitos Não-Funcionais | RNF01 (bcrypt), RNF02 (login ≤2s), RNF04 (responsivo iOS/Android) |
| Release Planejada | R1 — Fundação |
Descrição
Implementar o fluxo completo de cadastro de estudantes universitários, incluindo formulário multi-etapa (dados pessoais, perfil acadêmico e áreas de interesse), validações de entrada, criptografia de senha e criação do perfil no banco de dados. O cadastro deve ser responsivo para iOS e Android (RNF04).
Critérios de Aceite (BDD)
Cenário 1: Cadastro com sucesso
Dado que o estudante acessa a tela de cadastro pela primeira vez
Quando preenche nome, sobrenome, e-mail institucional válido, universidade, curso, matrícula, senha segura (mínimo 8 caracteres), aceita os termos de uso e submete o formulário
Então o sistema cria a conta, armazena a senha com bcrypt (RNF01), exibe mensagem de sucesso e redireciona o estudante para o dashboard
Cenário 2: E-mail já cadastrado
Dado que já existe um estudante cadastrado com o e-mail "ana.souza@unb.br"
Quando um novo estudante tenta cadastrar-se usando o mesmo e-mail
Então o sistema exibe a mensagem de erro "Este e-mail já está em uso" e impede a criação da conta
Cenário 3: Senha fraca
Dado que o estudante está na etapa de criação de senha
Quando insere uma senha com menos de 8 caracteres
Então o sistema exibe indicador de força fraca e bloqueia o envio até que a senha atenda ao requisito mínimo
Cenário 4: Campos obrigatórios em branco
Dado que o estudante deixou campos obrigatórios (nome, e-mail, universidade, senha) em branco
Quando tenta avançar ou submeter o formulário
Então o sistema destaca os campos pendentes com mensagem específica e não prossegue
Cenário 5: Matrícula já cadastrado
Dado que já existe um estudante cadastrado com a matrícula "232037786"
Quando um novo estudante tenta cadastrar-se usando a mesma matrícula
Então o sistema exibe a mensagem de erro "Esta matrícula já está em uso" e impede a criação da conta
Regras de Negócio
- O e-mail deve ser único no sistema (validação de duplicidade no backend).
- A matrícula deve ser único no sistema (validação de duplicidade no backend).
- A senha deve ter no mínimo 8 caracteres, conter letras e números (regra de força mínima).
- Os dados obrigatórios são: nome completo, e-mail institucional, universidade, curso, turno, matrícula, áreas de interesse e senha.
- Após cadastro, o estudante deve ser redirecionado para o dashboard (não requer confirmação por e-mail no MVP, conforme Won't Have RF05).
- O cadastro cria automaticamente o
StudentProfilevinculado aoUsercom role=student.
Requisitos Técnicos
- Backend: Django + DRF. Criar endpoint
POST /api/v1/student-profiles/(ou equivalente no appusers). - Frontend: React Native + Expo + NativeWind. Formulário multi-etapa conforme protótipo Figma.
- Segurança: Senhas armazenadas com bcrypt via Django Auth (RNF01). Nunca logar ou retornar senha em JSON.
- Performance: Resposta do cadastro ≤2s em condições normais de rede (RNF02).
- Responsividade: Layout deve se adaptar a iOS e Android sem quebras (RNF04).
- Testes: pytest para backend; Jest + RNTL para frontend. Cobertura mínima conforme thresholds do projeto.
Referências de Design
- Protótipo Figma (Mobile — Cadastro geral): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=26-2
- Protótipo Figma (Mobile — Etapa 1): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=81-2
- Protótipo Figma (Mobile — Etapa 3): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=82-2
- Protótipo Figma (Mobile — Etapa 4): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=83-2
Dependências
- Relacionada a: #13 (Cadastro de Organizações — mesma CP01)
- Bloqueada por: N/A
- Bloqueia: #14 (provável — Autenticação/Login, se existir)
Notas
- O fluxo de "confirmação de cadastro via e-mail" foi classificado como Won't Have no MVP (RF05). Portanto, não implementar e-mail de confirmação nesta issue.
- A foto de perfil e bio são opcionais no cadastro inicial (podem ser preenchidas depois no gerenciamento de perfil — RF04).
- O campo "semestre atual" aparece no protótipo Figma como dropdown; verificar se é obrigatório ou opcional.
- Edge case: CPF não é requisitado no RF01; não adicionar escopo não previsto.
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)
- Cadastro com sucesso: O estudante consegue criar sua conta preenchendo nome, e-mail institucional, universidade, curso, matrícula, senha e aceitando os termos de uso. Após o cadastro, é redirecionado para seu painel.
- E-mail duplicado: Se o estudante tentar se cadastrar com um e-mail que já existe na plataforma, verá a mensagem "Este e-mail já está em uso" e não conseguirá criar a conta.
- Matrícula duplicada: Se a matrícula já estiver cadastrada, o sistema exibe "Esta matrícula já está em uso" e impede o cadastro.
- Senha fraca: Se a senha tiver menos de 8 caracteres, o sistema sinaliza que a senha é fraca e não deixa concluir o cadastro até que seja corrigida.
- Campos em branco: Se o estudante tentar avançar sem preencher campos obrigatórios (nome, e-mail, universidade, senha), o sistema destaca o que está faltando e não prossegue.
Acesso & Evidência
- Código Homologado: Repositório Principal
- Status de Conclusão: 100% Entregue (conforme Matriz de Completude).