Pular para conteúdo

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-storages para 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 opportunities e applications (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).