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
| Objetivo | Descrição |
|---|---|
| Simplicidade | Acesso e uso com baixo atrito, inclusive para usuários não técnicos. |
| Escalabilidade | Suporte a múltiplas igrejas e ministérios sem alteração estrutural. |
| Privacidade | Minimização e proteção de dados; privacidade por padrão. |
| Mobile-first | Experiência otimizada para celular; PWA sem dependência de loja. |
| Autoridade no backend | Regras de negócio, validação e controle de acesso centralizados no backend. |
| Evolução controlada | Mudanç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
- Arquitetura antes de código — decisões estruturantes registradas (ADR) antes da implementação.
- Backend como autoridade de negócio — regras críticas e validações no backend; frontend orquestra e validações básicas.
- Privacidade por padrão — coleta e uso mínimos; conformidade com princípios de minimização.
- Simplicidade incremental — evolução por etapas, com impacto documentado.
- Separação clara entre domínio, aplicação e infraestrutura (Clean Architecture simplificada).
- Multi-igreja e multitenancy como requisito estrutural; isolamento por
ministry_ideunit_id. - 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.