Skip to main content

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:

#AbaObjetivo resumido
1InícioMensagens e ações importantes para aquele momento
2AçõesLista de ações que o perfil pode executar (com data/hora quando houver cronograma)
3MensagensChat 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:

ÁreaExige login?Exemplos de conteúdo
PúblicaNãoAviso de horário da EBD, boas-vindas genéricas, informações da igreja, mensagens institucionais
PrivadaSimAprovaçõ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

TipoDocumento
ADRADR-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
ArquiteturaFluxo de carga do perfil e roles (perfil carregado uma vez), Data Model Mensagens, TDD API Mensagens
PRDPRD-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.