Plataforma completa para organizar escalas, ministérios e disponibilidade de voluntários na igreja. Arquitetura em monorepo com backend em Go, mobile em React Native e web em Next.js.
O MJCP (Ministério Jesus Cristo Presente) é um sistema desenvolvido para facilitar o gerenciamento de escalas de voluntários em igrejas. O sistema permite:
- 📝 Cadastro e gerenciamento de voluntários
- 🎯 Organização de ministérios
- 📅 Criação e visualização de escalas
- ✅ Controle de disponibilidade dos voluntários
- 📊 Relatórios e estatísticas
Este projeto utiliza uma arquitetura de monorepo, contendo 3 aplicações principais:
mjcp/
├── backend/ # API REST em Go com Clean Architecture
├── mobile/ # App mobile em React Native (Expo)
├── web/ # Aplicação web em Next.js
└── README.md # Este arquivo
- Tecnologia: Go 1.21+
- Framework: Gin
- Arquitetura: Clean Architecture
- Banco de Dados: PostgreSQL (sugerido)
Ver documentação completa do backend →
- Tecnologia: React Native + Expo
- State Management: React Context/Provider
- Navegação: React Navigation
- UI: React Native Paper, NativeWind (Tailwind para RN)
- Arquitetura: Organização por features
Ver documentação completa do mobile →
- Tecnologia: Next.js 14 + React 18
- Linguagem: TypeScript
- Estilização: Tailwind CSS
- Arquitetura: App Router (Next.js 13+)
Ver documentação completa do web →
O backend segue os princípios de Clean Architecture, garantindo:
┌─────────────────────────────────────────┐
│ Presentation Layer │
│ (Handlers HTTP/REST API) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Application Layer │
│ (Use Cases) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Domain Layer │
│ (Entities + Repository Interfaces) │
└─────────────────────────────────────────┘
↑
┌─────────────────────────────────────────┐
│ Infrastructure Layer │
│ (Database, HTTP Clients, External APIs)│
└─────────────────────────────────────────┘
- Dependency Rule: As dependências apontam sempre para dentro
- Separation of Concerns: Cada camada tem uma responsabilidade clara
- Independence: Frameworks, UI, DB e serviços externos são detalhes
- Testability: Cada camada pode ser testada independentemente
Consulte os READMEs de cada módulo para instruções detalhadas de instalação, configuração e variáveis de ambiente:
- ✅ Seguir convenções de cada linguagem (Go, Dart, TypeScript)
- ✅ Escrever testes para novas funcionalidades
- ✅ Documentar código complexo
- ✅ Manter componentes pequenos e reutilizáveis
- ✅ Usar TypeScript/tipos sempre que possível
- ✅ Commits semânticos (feat, fix, refactor, docs, test)
- ✅ Branches descritivas
- ✅ Pull requests com descrições claras
- ✅ Code review antes de merge
- ✅ Nunca commitar secrets ou credenciais
- ✅ Usar variáveis de ambiente
- ✅ Validar todos os inputs
- ✅ Implementar autenticação e autorização
- ✅ HTTPS em produção
Consulte os READMEs de cada módulo para instruções de testes específicas.
- Volunteer: Voluntário da igreja
- Ministry: Ministério (louvor, som, mídia, etc.)
- Schedule: Escala de um evento
- Event: Evento da igreja (culto, ensaio, etc.)
- Availability: Disponibilidade do voluntário
Volunteer ─┬─→ Availability
└─→ Schedule ←─ Event
↓
Ministry
- Estrutura inicial do monorepo
- Clean Architecture no backend
- Estrutura base mobile e web
- CRUD de voluntários
- CRUD de ministérios
- Criação de escalas básicas
- Autenticação
- Sistema de disponibilidade
- Notificações (email/push)
- Histórico de escalas
- Relatórios e estatísticas
- Exportação de dados
- Filtros avançados
- Cache (Redis)
- Background jobs
- PWA (Progressive Web App)
- Modo offline
- Analytics
- Testes E2E
- Go 1.21+
- Gin (Web Framework)
- PostgreSQL
- JWT
- React Native + Expo
- React Navigation
- React Native Paper
- NativeWind
- Next.js 14
- React 18
- TypeScript
- Tailwind CSS
- Backend Documentation - Detalhes sobre Clean Architecture, estrutura e API
- Mobile Documentation - Guia de desenvolvimento mobile, widgets e features
- Web Documentation - Componentes, rotas e integrações
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'feat: Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
feat: Nova funcionalidadefix: Correção de bugrefactor: Refatoração de códigodocs: Documentaçãotest: Testeschore: Tarefas de manutenção
- Backend (Go):
PascalCasepara tipos,camelCasepara funções - Mobile (React Native/TS):
PascalCasepara componentes,camelCasepara funções/variáveis - Web (TS/JS):
PascalCasepara componentes,camelCasepara funções
As variáveis de ambiente estão documentadas nos READMEs de cada módulo.
Este projeto é de código aberto para uso em igrejas e organizações religiosas.
- Equipe MJCP
Projeto desenvolvido para facilitar o trabalho de coordenadores de ministérios e voluntários em igrejas.
Nota: Este é um projeto em desenvolvimento ativo. Consulte os READMEs individuais de cada módulo para informações mais detalhadas.