ADR-0000 — Fundação do Projeto
Status
Aprovado
Contexto
O projeto EBDbe (EBD + Ebenezer) nasce com o propósito de implementar uma solução digital para controle e gestão da Escola Bíblica Dominical (EBD), contemplando:
- Controle automatizado e híbrido de frequência
- Gestão hierárquica organizacional
- Registro de aulas e materiais utilizados
- Estrutura multi-igreja
- Preservação de privacidade dos participantes
- Uso predominante via dispositivos móveis
Antes do início do desenvolvimento de código, faz-se necessário registrar as decisões estruturantes que nortearão todo o ciclo de vida do projeto.
Este ADR estabelece a fundação tecnológica, organizacional e de governança do projeto.
Decisão
1. Arquitetura Geral
A solução será baseada em arquitetura web mobile-first, utilizando:
- Frontend em Flutter Web (PWA)
- Backend em Firebase
- Banco de dados Firestore
- Cloud Functions escritas em TypeScript
2. Stack Tecnológica Oficial
Frontend
- Flutter Web (Dart)
- Estrutura baseada em princípios de Clean Architecture simplificada
- Organização modular
Backend
- Firebase Authentication
- Firestore
- Cloud Functions (TypeScript)
- Firebase Emulator para desenvolvimento local
3. Ambiente de Desenvolvimento
- Sistema operacional: Windows
- Editor principal: Cursor IDE (para este projeto)
- Controle de versão: Git
- Repositório: Bitbucket
- Fluxo de versionamento baseado em branches
4. Governança de Uso de IA
A utilização de ferramentas de Inteligência Artificial é autorizada como apoio ao desenvolvimento, respeitando as seguintes diretrizes:
- IA pode sugerir código e documentação
- IA pode propor refatorações
- IA pode sugerir comandos de terminal
- IA não realiza commits automáticos sem revisão humana
- Decisões arquiteturais devem ser formalizadas via ADR
- Prompts arquiteturais relevantes devem ser registrados quando necessário
A IA atua como assistente técnico, não como autoridade decisória.
5. Organização Estrutural do Repositório
A estrutura inicial do projeto seguirá o padrão:
ebdbe/ │ ├── frontend/ ├── backend/ ├── docs/ │ ├── architecture/ │ │ └── adrs/ │ ├── diagrams/ │ └── models/ │ └── README.md
Os ADRs serão nomeados seguindo o padrão:
Exemplo: adr-0001-arquitetura-geral-do-sistema.md
6. Princípios Fundamentais
- Arquitetura antes de código
- Privacidade por padrão
- Simplicidade incremental
- Evolução controlada via ADR
- Separação clara entre domínio, aplicação e infraestrutura
Consequências
- O projeto inicia formalmente pelo registro arquitetural
- Mudanças estruturais futuras deverão ser registradas como novos ADRs
- O desenvolvimento seguirá abordagem incremental
- A fundação tecnológica fica oficialmente definida neste documento