US1.2
Cadastro de Organizações Sociais (RF02)
História de Usuário
Como representante de uma organização social, quero cadastrar minha organização na plataforma informando CNPJ, dados institucionais e de contato para poder publicar vagas de voluntariado.
Rastreabilidade
| Item | Código |
|---|---|
| User Story | US1.2 |
| Requisito Funcional | RF02 — Cadastrar organização |
| Característica de Produto | CP01 — Gestão de Usuários e Entidades |
| Requisitos Não-Funcionais | RNF01 (bcrypt), RNF03 (validação CNPJ), RNF04 (responsivo iOS/Android) |
| Release Planejada | R1 — Fundação |
Descrição
Implementar o fluxo de cadastro de organizações sociais, incluindo validação de CNPJ (RNF03), criptografia de senha (RNF01) e definição do status inicial como pending para moderação administrativa (RF06). O cadastro deve ser responsivo para iOS e Android (RNF04).
Critérios de Aceite (BDD / Gherkin)
Cenário 1: Cadastro com sucesso
Dado que o representante acessa a tela de cadastro de organização
Quando preenche CNPJ válido, razão social, nome fantasia, e-mail, telefone, senha segura, dados do responsável e submete o formulário
Então o sistema cria a conta com status pending, armazena a senha com bcrypt (RNF01), exibe mensagem "Cadastro realizado. Aguarde aprovação do administrador." e redireciona para tela de status de moderação
Cenário 2: CNPJ inválido
Dado que o representante inseriu um CNPJ com dígitos incorretos ou máscara inválida
Quando tenta submeter o formulário
Então o sistema exibe a mensagem "CNPJ inválido. Verifique os dígitos informados." e bloqueia o envio
Cenário 3: CNPJ já cadastrado
Dado que já existe uma organização cadastrada com o CNPJ "12.345.678/0001-95"
Quando um novo representante tenta cadastrar a mesma organização
Então o sistema exibe a mensagem "Este CNPJ já está cadastrado." e impede a duplicidade
Cenário 4: E-mail já em uso
Dado que o e-mail informado já pertence a outro usuário (estudante ou outra organização)
Quando o representante tenta finalizar o cadastro
Então o sistema exibe a mensagem "Este e-mail já está em uso." e solicita outro endereço
Regras de Negócio
- O CNPJ deve ser validado matematicamente e quanto à formatação (RNF03).
- O CNPJ e o e-mail devem ser únicos no sistema.
- A senha deve ter no mínimo 8 caracteres (mesma regra do estudante, RNF01).
- O status inicial da organização deve ser
pending(aguardando moderação do admin — RF06). Após aprovação, muda paraapproved. - Os dados obrigatórios são: CNPJ, razão social, e-mail, telefone, senha e nome do responsável.
- O cadastro cria automaticamente o
OrganizationProfilevinculado aoUsercom role=organization.
Requisitos Técnicos
- Backend: Django + DRF. Endpoint
POST /api/v1/organization-profiles/(ou equivalente no appusers). Serializer deve validar CNPJ com biblioteca comopycpfcnpjou validação customizada. - Frontend: React Native + Expo + NativeWind. Formulário de cadastro conforme padrão visual do projeto.
- Segurança: Senhas com bcrypt (RNF01). CNPJ armazenado sem máscara no banco (apenas dígitos).
- Performance: Resposta ≤2s (RNF02).
- Responsividade: iOS e Android (RNF04).
- Testes: pytest com factory_boy para criar OrganizationProfile em testes. Testar validação de CNPJ, duplicidade e status
pending.
Referências de Design
- Protótipo Figma (Geral): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=0-1
- Observação: A tela específica de cadastro de organização ainda não foi encontrada no protótipo Figma. O time de design precisa criá-la ou confirmar se reutiliza o mesmo layout do cadastro de estudante com campos adaptados.
Dependências
- Relacionada a: #12 (Cadastro de Estudantes — mesma CP01)
- Bloqueada por: N/A
- Bloqueia: #
(RF06 — Moderar organização)
Notas
- A confirmação de cadastro por e-mail está fora do escopo do MVP (RF05 = Won't Have).
- A logo e descrição da missão podem ser adicionadas posteriormente no gerenciamento de perfil (RF04).
- Edge case: Se o CNPJ for válido matematicamente mas inexistente na Receita Federal, o sistema não precisa consultar a Receita no MVP — a moderação humana (RF06) é o filtro de legitimidade.
- O campo "dados de contato" no RF02 pode incluir endereço, site e redes sociais; definir quais são obrigatórios para o MVP (sugestão: telefone e e-mail são suficientes para v1).
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 representante preenche CNPJ válido, razão social, nome fantasia, e-mail, telefone, senha e dados do responsável. A conta é criada com status "aguardando aprovação" e o representante vê a mensagem: "Cadastro realizado. Aguarde aprovação do administrador."
- CNPJ inválido: Se o CNPJ tiver dígitos incorretos ou formato inválido, o sistema exibe "CNPJ inválido. Verifique os dígitos informados." e impede o envio.
- CNPJ já cadastrado: Se o CNPJ já pertencer a outra organização na plataforma, o sistema exibe "Este CNPJ já está cadastrado."
- E-mail já em uso: Se o e-mail informado já pertencer a outro usuário, o sistema exibe "Este e-mail já está em uso."
Acesso & Evidência
- Código Homologado: Repositório Principal
- Status de Conclusão: 100% Entregue (conforme Matriz de Completude).