US1.5
Edição de Perfil Institucional da Organização (RF04)
História de Usuário
Como organização, quero editar meu perfil institucional para manter as informações da organização atualizadas e atrativas para estudantes voluntários.
Rastreabilidade
| Item | Código / Referência |
|---|---|
| User Story | US1.5 |
| Requisito Funcional | RF04 — Gerenciar perfil |
| Característica de Produto | CP01 — Gestão de Usuários e Entidades |
| Requisitos Não-Funcionais | RNF04 (responsivo iOS/Android) |
| Release Planejada | R1 — Fundação |
Descrição
Implementar a tela de gestão de perfil institucional da organização. A organização deve poder visualizar seus dados cadastrais completos e editar informações como razão social, nome fantasia, CNPJ (visualização apenas), descrição da missão, descrição completa, áreas de atuação, contatos (e-mail, telefone, site, endereço), logo, banner e galeria de fotos. Um perfil institucional completo e bem elaborado é essencial para atrair estudantes e transmitir credibilidade. O escopo é full-stack.
Critérios de Aceite (BDD / Gherkin)
Cenário 1: Visualização do perfil institucional completo
Dado que a organização "ONG Esperança" está autenticada e possui perfil com razão social, nome fantasia, missão, áreas de atuação, logo e banner
Quando acessa a tela de "Perfil da Organização"
Então o sistema exibe todos os dados cadastrais institucionais, logo, banner, galeria de fotos, estatísticas de eventos/voluntários/avaliação e lista de vagas abertas formatados
Cenário 2: Edição de dados institucionais
Dado que a organização está visualizando seu perfil
Quando clica em "Editar", altera a descrição da missão e adiciona uma nova área de atuação, e salva
Então o sistema atualiza os dados, exibe "Perfil atualizado com sucesso" e reflete a alteração em toda a plataforma
Cenário 3: Upload de logo e banner
Dado que a organização está na edição de perfil
Quando seleciona imagens da galeria do dispositivo para o logotipo institucional e/ou banner e salva
Então o sistema armazena as imagens, exibe o novo logo e banner no perfil e nas páginas de vagas da organização, redimensionando para os formatos padrão
Cenário 4: Adição de fotos à galeria
Dado que a organização está na seção "Galeria de Fotos" da edição de perfil
Quando toca em "Adicionar fotos", seleciona uma ou mais imagens (JPEG/PNG, máx. 5MB cada) e confirma
Então o sistema armazena as novas fotos na galeria e exibe a galeria atualizada no perfil
Cenário 5: Remoção de foto da galeria
Dado que a organização está na seção "Galeria de Fotos" da edição de perfil
Quando toca no botão de remoção (X) em uma foto existente e confirma
Então o sistema remove a foto da galeria e exibe a galeria atualizada no perfil
Cenário 6: Alteração de senha
Dado que o representante da organização está na seção de segurança do perfil
Quando digita uma nova senha com no mínimo 8 caracteres e confirma a nova senha corretamente
Então o sistema atualiza a senha e exibe "Senha alterada com sucesso"
Cenário 7: Alteração de senha com confirmação divergente
Dado que o representante da organização está na seção de segurança do perfil
Quando digita uma nova senha e a confirmação não coincide
Então o sistema rejeita a alteração e exibe "As senhas não coincidem"
Cenário 8: Perfil exibido publicamente na página de vagas
Dado que a organização "ONG Esperança" possui uma vaga publicada
Quando um estudante acessa os detalhes da vaga
Então o sistema exibe, junto às informações da vaga, o nome fantasia, o logo, a missão resumida, o e-mail e o telefone da organização (campos marcados como públicos)
Cenário 9: Visualização de estatísticas institucionais (read-only)
Dado que a organização possui 18 eventos realizados, 340+ voluntários e avaliação 4.8
Quando acessa a tela de "Perfil da Organização"
Então o sistema exibe as estatísticas de eventos, voluntários e avaliação média
Cenário 10: Visualização de vagas abertas (read-only)
Dado que a organização possui vagas de voluntariado em aberto
Quando acessa a tela de "Perfil da Organização"
Então o sistema exibe a lista de vagas abertas com título, área, vagas disponíveis e inscrições
Regras de Negócio
- Apenas a própria organização, por meio de seu representante autenticado, pode visualizar e editar os dados do perfil institucional.
- A razão social, o CNPJ, o nome do responsável, o e-mail de contato e o telefone são informações obrigatórias do perfil da organização.
- O CNPJ não pode ser alterado após o cadastro. Entre em contato com o suporte se necessário.
- O nome fantasia, a descrição da missão, a descrição completa, as áreas de atuação, o endereço, o site, o logotipo, o banner e a galeria de fotos são informações opcionais que a organização pode preencher ou atualizar a qualquer momento.
- O nome fantasia, a missão resumida, o e-mail de contato e o telefone são campos públicos — exibidos nas páginas de vagas para conhecimento dos estudantes.
- A razão social, CNPJ, nome do responsável, descrição completa e endereço são campos privados — visíveis apenas para a própria organização e administradores.
- Para alterar a senha, o representante deve digitar a nova senha com no mínimo 8 caracteres e confirmar a nova senha. Não é necessário informar a senha atual.
- A galeria de fotos da organização é editável — é possível adicionar e remover fotos (JPEG/PNG, máx. 5MB cada).
- As seções "Eventos Realizados", "Álbum de Eventos", "Vagas Abertas" e as estatísticas de eventos/voluntários/avaliação são apenas visualização (read-only) e consomem dados dos módulos de Oportunidades.
Requisitos Técnicos
- Backend: Django + DRF. Endpoints:
GET /api/v1/organizations/me/— visualizar perfil completo (dados cadastrais + estatísticas aggregadas + galeria de fotos).PATCH /api/v1/organizations/me/— editar perfil (dados cadastrais, missão, descrição, áreas de atuação).POST /api/v1/organizations/me/logo/— upload de logotipo.POST /api/v1/organizations/me/banner/— upload de banner.POST /api/v1/organizations/me/gallery/— adicionar fotos à galeria.DELETE /api/v1/organizations/me/gallery/{photo_id}/— remover foto da galeria.POST /api/v1/organizations/me/change-password/— alterar senha (nova senha + confirmação).- Upload de imagem: Utilizar
django-storagespara armazenamento de logos, banners e fotos de galeria (S3 ou similar). Validar tipo (JPEG/PNG) e tamanho máximo (5MB). Gerar thumbnail para exibição em listas. - Frontend: React Native + Expo + React Native StyleSheet com design tokens centralizados em
src/theme/. Tela de perfil institucional com seções: dados cadastrais, logo, banner, missão (resumida e completa), áreas de atuação, contatos (e-mail, telefone, site, endereço), galeria de fotos (editável), segurança, estatísticas (read-only), eventos realizados (read-only) e vagas abertas (read-only). - Segurança: Senhas armazenadas com bcrypt (RNF01). Campos sensíveis como CNPJ e nome do responsável não devem ser retornados em endpoints públicos. Endpoint de detalhes da vaga (RF09) deve expor apenas campos marcados como públicos.
- Responsividade: Layout adaptável a iOS e Android (RNF04).
- Testes: pytest para testar visualização, edição, alteração de senha, upload de logo/banner/galeria, remoção de foto, exposição pública de dados no contexto de vagas e validação de campos obrigatórios.
Referências de Design
- Perfil de Organização (Visualização): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=278-2&t=PCphRr9qb7MPPKW5-0
- Perfil de Organização (Edição): https://www.figma.com/design/f6bQuVohTvZLF5WWPEbNob/Liaison?node-id=279-2&t=PCphRr9qb7MPPKW5-0
Dependências
- Relacionada a: #13 (Cadastro de Organização — RF02/US1.2)
- Bloqueada por: #13 (RF02 — Cadastrar organização)
- Bloqueia: N/A
Notas
- ICE Score: I=7 C=8 E=6 = 336 | MoSCoW: Must | Quadrante: Quick Win
- RF04 cobre dois perfis: estudante (US1.4) e organização (US1.5). Embora sejam issues separadas, compartilham a mesma base de requisito funcional e os mesmos valores de ICE. A complexidade está concentrada no frontend, com endpoints de CRUD simples no backend.
- O perfil institucional é o principal mecanismo de atração de estudantes — uma organização com perfil completo, logo e missão bem redigida transmite mais credibilidade e tende a receber mais candidaturas.
- A seção pública do perfil (nome fantasia, logo, missão resumida, e-mail, telefone) exibida nas páginas de vagas deve ser implementada como parte do endpoint de detalhes da vaga (RF09/US2.6), que já inclui dados resumidos da organização.
- As seções "Eventos Realizados", "Álbum de Eventos", "Vagas Abertas" e estatísticas de eventos/voluntários/avaliação são read-only e dependem dos módulos
opportunitieseapplications(ainda placeholders). Para o MVP, podem ser renderizadas com dados mockados ou ocultas até que os módulos estejam implementados.
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)
- Visualização completa: A organização consegue ver todos os seus dados institucionais: logo, banner, razão social, missão, áreas de atuação, contatos, galeria, estatísticas e lista de vagas abertas.
- Edição de dados: A organização consegue alterar descrição, missão, áreas de atuação e outros dados, e ao salvar vê "Perfil atualizado com sucesso".
- Logo e banner: A organização consegue fazer upload do logotipo e banner, que passam a aparecer também nas páginas de vagas publicadas.
- Galeria de fotos: A organização consegue adicionar e remover fotos da galeria.
- Alteração de senha: Nova senha deve ter mínimo 8 caracteres e as confirmações devem coincidir.
- Dados públicos nas vagas: O nome fantasia, logo, missão resumida, e-mail e telefone são exibidos para os estudantes nas páginas de vagas. Dados sensíveis como CNPJ e nome do responsável não aparecem publicamente.
- CNPJ imutável: O CNPJ cadastrado não pode ser alterado após o cadastro.
Acesso & Evidência
- Código Homologado: Repositório Principal
- Status de Conclusão: 100% Entregue (conforme Matriz de Completude).