Skip to main content

Vision 001 — EBDbe: Plataforma Digital para a Escola Bíblica Dominical

Documento de visão extraído e consolidado a partir dos ADRs do projeto.
Referência: docs/architecture/adrs/ (ADR-0000, ADR-0001, ADR-0002, ADR-0004, ADR-0005 e correlatos).


1. Propósito

O EBDbe (EBD + Ebenezer) é uma solução digital para controle e gestão da Escola Bíblica Dominical (EBD) que contempla:

  • Controle automatizado e híbrido de frequência — registro de presença confiável, com baixo atrito e respeito à privacidade.
  • Gestão hierárquica organizacional — múltiplas igrejas e ministérios, com administração local e visibilidade consolidada.
  • Registro de aulas e materiais — lições, sessões de EBD, classes e materiais utilizados.
  • Estrutura multi-igreja e multitenancy — isolamento por ministério (tenant) e por unidade organizacional.
  • Preservação da privacidade dos participantes e uso predominante em dispositivos móveis (mobile-first).

2. Visão de longo prazo

Uma plataforma web mobile-first que permita a igrejas e ministérios:

  • Gerenciar a EBD de forma descentralizada por unidade, com governança hierárquica e consolidação em nível ministerial.
  • Registrar presença de alunos e visitantes de forma simples e confiável (QR, rede, geolocalização opcional).
  • Manter dados organizados por ministério e por unidade, com controle de acesso baseado em papéis e escopo.
  • Evoluir de forma incremental e controlada, com decisões arquiteturais registradas (ADR) e backend como autoridade de negócio.

3. Stakeholders e contexto

  • Ministérios — tenant lógico; cada um com domínio(s) próprio(s) e visão consolidada.
  • Unidades organizacionais (igrejas) — nós na árvore hierárquica; gestão local e isolamento de dados.
  • Usuários — participantes da EBD (alunos, professores, monitores, secretários, pastores) com papéis e escopo definidos.
  • Escola Bíblica Dominical — foco no registro de aulas, sessões, classes, frequência e materiais.

4. Objetivos de alto nível

ObjetivoDescrição
SimplicidadeAcesso e uso com baixo atrito, inclusive para usuários não técnicos.
EscalabilidadeSuporte a múltiplas igrejas e ministérios sem alteração estrutural.
PrivacidadeMinimização e proteção de dados; privacidade por padrão.
Mobile-firstExperiência otimizada para celular; PWA sem dependência de loja.
Autoridade no backendRegras de negócio, validação e controle de acesso centralizados no backend.
Evolução controladaMudanças estruturais e arquiteturais via ADR; desenvolvimento incremental.

5. Escopo em nível de visão

Dentro do escopo:

  • Controle de frequência (presença) com mecanismos híbridos (QR, rede, geolocalização opcional).
  • Modelo organizacional hierárquico (Ministry → OrganizationalUnit com relação pai-filha).
  • Controle de acesso por papéis e escopo (RBAC hierárquico; multitenancy por domínio).
  • Entidades de domínio: Ministry, OrganizationalUnit, User, Role, ClassGroup, EbdSession, Lesson, Attendance, Material.
  • Frontend PWA (Flutter Web); backend serverless (Firebase, Cloud Functions, Firestore).

Fora do escopo (visão atual):

  • Publicação obrigatória em loja de aplicativos (PWA é o canal principal).
  • BLE para presença na Fase 1.
  • Decisões arquiteturais ou de negócio não registradas em ADR (devem ser formalizadas).

6. Princípios estratégicos

  1. Arquitetura antes de código — decisões estruturantes registradas (ADR) antes da implementação.
  2. Backend como autoridade de negócio — regras críticas e validações no backend; frontend orquestra e validações básicas.
  3. Privacidade por padrão — coleta e uso mínimos; conformidade com princípios de minimização.
  4. Simplicidade incremental — evolução por etapas, com impacto documentado.
  5. Separação clara entre domínio, aplicação e infraestrutura (Clean Architecture simplificada).
  6. Multi-igreja e multitenancy como requisito estrutural; isolamento por ministry_id e unit_id.
  7. IA como assistente — apoio ao desenvolvimento permitido; decisões e commits sujeitos a revisão humana.

7. Referências

  • Fundação e stack: ADR-0000 (Fundação do Projeto).
  • Arquitetura geral: ADR-0001 (Arquitetura Geral do Sistema).
  • Modelo organizacional: ADR-0002 (Modelo Organizacional Hierárquico).
  • Controle de acesso: ADR-0003 (RBAC com escopo hierárquico).
  • Presença: ADR-0004 (Estratégia de Presença).
  • Domínio conceitual: ADR-0005 (Modelo de Domínio Conceitual).
  • Multitenancy: ADR-0012 (Multitenancy por domínio e PLATFORM_ADMIN).

Demais ADRs em docs/architecture/adrs/ complementam requisitos, segurança, UX e organização de código.