PRD — Página inicial (Home)
Status
Proposta (aguardando aprovação)
Tipo de documento
PRD (Product Requirements Document) — requisitos de produto para a estrutura e comportamento da página inicial do app, alinhado à convenção do projeto (um PRD por epic/área).
Contexto
A página inicial é a primeira tela após o login (ou a tela de boas-vindas quando o usuário ainda não está logado) e o ponto de acesso principal às funcionalidades do EBDbe. A aba Início permite exibir conteúdo público sem login e conteúdo privado quando o usuário está autenticado. Atualmente a Home possui abas e um conteúdo em evolução. Este PRD propõe uma estrutura fixa em três abas, com responsabilidades claras para cada uma, de forma a orientar mensagens importantes, ações disponíveis ao perfil e comunicação (mensagens/chat).
Referências: ADR-0009 — Princípios de interface e experiência do usuário, ADR-0021 — Reflexo em tela após ações.
Proposta: estrutura da página inicial
A página inicial deve possuir três abas principais:
| # | Aba | Objetivo resumido |
|---|---|---|
| 1 | Início | Mensagens e ações importantes para aquele momento |
| 2 | Ações | Lista de ações que o perfil pode executar (com data/hora quando houver cronograma) |
| 3 | Mensagens | Chat com pessoas/grupos e mensagens do sistema |
1. Aba Início
Objetivo: Trazer ao usuário mensagens ou ações importantes para aquele momento, de forma que ele veja rapidamente o que exige atenção.
Estrutura: parte pública e parte privada
A aba Início possui duas áreas distintas:
| Área | Exige login? | Exemplos de conteúdo |
|---|---|---|
| Pública | Não | Aviso de horário da EBD, boas-vindas genéricas, informações da igreja, mensagens institucionais |
| Privada | Sim | Aprovações pendentes, resultado de solicitações de cargo, avisos personalizados |
- A parte pública pode ser carregada e exibida sem necessidade de login; não depende de perfil do usuário.
- A parte privada depende do perfil e só é exibida quando o usuário está autenticado; usa os dados de perfil já em memória.
Regra de carga do perfil: O perfil do usuário deve ser carregado apenas uma vez (na abertura da Home quando o usuário está logado, ou ao concluir o login). Componentes que dependem do perfil (incluindo a parte privada da aba Início) consomem os dados em memória — não disparam nova carga de perfil. Refreshes só ocorrem após ações explícitas (ex.: ao salvar no ProfileDialog). Referência: fluxo-carga-perfil-e-roles, PRD-0001 perfil.
Conteúdo (exemplos, não exaustivo):
- Público: Lembrar que está chegando a hora da EBD (aviso de proximidade do horário); boas-vindas e informações da igreja.
- Privado: Aprovar um perfil que foi solicitado (ex.: "Fulano solicitou cargo X; aprovar?" com atalho para aprovação); informar que uma solicitação sua foi aprovada ou rejeitada; outros avisos personalizados.
Comportamento:
- Parte pública: sempre visível, sem chamada de API de perfil.
- Parte privada: visível apenas quando há perfil em memória; usa dados já carregados.
- Conteúdo dinâmico conforme perfil, data/hora e regras de negócio.
- Itens acionáveis (ex.: aprovar) devem refletir o resultado na tela conforme ADR-0021.
- Ordenação e critérios de "destaque" serão definidos em refinamento (prioridade, data, tipo).
Escopo inicial: Focar em aprovações pendentes (privado), resultado de solicitações de cargo (privado) e aviso de horário da EBD (público); demais tipos de card podem ser acrescentados depois.
2. Aba Ações
Objetivo: Apresentar a lista de ações que o usuário pode executar com base no perfil (cargo, permissões), considerando também data e hora de cada uma quando aplicável.
Conteúdo:
- Lista de ações suportadas pelo perfil atual (ex.: registrar frequência, dar aula, ver relatórios, acessar materiais, etc.).
- Data/hora de cada ação quando fizer sentido (ex.: "Aula de hoje 09:00"); cronograma formal será definido posteriormente.
- Por ora, a aba lista as ações disponíveis ao perfil; a associação explícita a datas/horários e cronograma será refinada em versões futuras.
Comportamento:
- Ações habilitadas/desabilitadas conforme perfil e regras do backend.
- Ao tocar em uma ação, navegação ou abertura do fluxo correspondente (telas/features a definir).
- Consistente com ADR-0009 (mobile-first, praticidade, clareza).
3. Aba Mensagens
Objetivo: Oferecer um espaço de comunicação — chat com outras pessoas ou grupos e recebimento de mensagens do sistema.
Entrega instantânea: As mensagens devem ser comunicadas instantaneamente ao usuário final. Para isso, um listener (ex.: Firestore onSnapshot) ou mecanismo equivalente deve estar ativo logo após o login, assim que o perfil for carregado. Referência: ADR-0023 — Coleção Dedicada de Mensagens, TDD API Mensagens.
Conteúdo:
- Chat: conversas com pessoas ou grupos; definição de grupos e regras será feita posteriormente.
- Mensagens do sistema: notificações, avisos e mensagens enviadas pela plataforma (ex.: "Sua solicitação foi aprovada", "EBD em 30 min"). Coleção dedicada com dados do emissor, data, status de leitura, prioridade (0 a 5) e ações do receptor (excluir, marcar como lida, ignorar). Ver Data Model Mensagens.
Comportamento:
- Lista de conversas e/ou mensagens; abertura do chat ou do detalhe da mensagem ao tocar.
- UI reage em tempo real às novas mensagens via listener ativo após login.
- O receptor pode: marcar como lida, excluir ou ignorar cada mensagem.
- Mensagens do sistema podem ser exibidas em lista dedicada ou integrada, conforme refinamento.
- Grupos e regras de quem pode falar com quem serão definidos posteriormente.
Itens deixados para refinamento posterior
- Cronograma: definição formal de cronograma (datas/horários) e como ele alimenta a aba Ações e eventualmente a aba Início.
- Grupos e chat: regras de grupos, criação de conversas, moderação e permissões.
- Ordenação e priorização da aba Início: critérios (prioridade, data, tipo de card) e limites (quantos itens exibir).
- Detalhamento de cada ação na aba Ações (telas, fluxos, APIs).
Critérios de aceite (resumo)
- A página inicial possui três abas: Início, Ações, Mensagens.
- Início: possui parte pública (ex.: aviso de horário da EBD) visível sem login, e parte privada (aprovar perfil, solicitação aprovada/rejeitada) visível apenas com login; o perfil é carregado uma única vez na Home; itens acionáveis refletem o resultado na tela.
- Ações: exibe lista de ações disponíveis ao perfil; data/hora quando aplicável (cronograma a definir depois).
- Mensagens: espaço para chat (pessoas/grupos a definir) e mensagens do sistema em coleção dedicada; entrega instantânea via listener após login; receptor pode marcar como lida, excluir ou ignorar.
- Navegação entre abas é clara e aderente aos princípios de UI/UX (ADR-0009).
Referências
| Tipo | Documento |
|---|---|
| ADR | ADR-0009 — Princípios de interface e experiência do usuário, ADR-0021 — Reflexo em tela após ações, ADR-0023 — Coleção Dedicada de Mensagens |
| Arquitetura | Fluxo de carga do perfil e roles (perfil carregado uma vez), Data Model Mensagens, TDD API Mensagens |
| PRD | PRD-0001 — Diálogo de perfil do usuário (mensagens e preferências) |
Aprovação
Status atual: Proposta.
Após aprovação, o status deste documento deve ser atualizado (ex.: "Aprovado") e a implementação pode seguir com base neste PRD, com TDD e ADRs complementares quando necessário.