Pular para o conteúdo principal

API

A API do ChurchApps é um monólito modular -- uma única base de código que serve seis módulos distintos, cada um com seu próprio banco de dados. Essa arquitetura oferece os benefícios organizacionais de microsserviços (limites claros, armazenamentos de dados independentes) com a simplicidade operacional de uma única implantação.

Módulos

MóduloPropósito
MembershipPessoas, grupos, domicílios, permissões
AttendanceCultos, sessões, registros de check-in
ContentPáginas, seções, elementos, streaming
GivingDoações, fundos, processamento de pagamentos
MessagingConversas, notificações, email
DoingTarefas, planos, atribuições

Stack Tecnológica

  • Runtime: Node.js 22.x com TypeScript (ES modules)
  • Framework: Express
  • Injeção de Dependências: Inversify (roteamento baseado em decoradores)
  • Banco de Dados: MySQL -- um banco de dados por módulo, cada um com seu próprio pool de conexões
  • Autenticação: Autenticação baseada em JWT via CustomAuthProvider
  • Implantação: AWS Lambda via Serverless Framework v3

Portas

ProtocoloPortaDescrição
HTTP8084API REST principal
WebSocket8087Conexões de socket em tempo real

Funções Lambda

Quando implantada na AWS, a API roda como quatro funções Lambda:

  • web -- Lida com todas as requisições HTTP
  • socket -- Gerencia conexões WebSocket
  • timer15Min -- Executa a cada 15 minutos para notificações por email
  • timerMidnight -- Executa diariamente para emails de resumo e tarefas de manutenção

Bibliotecas Compartilhadas

A API depende de dois pacotes compartilhados do ChurchApps:

  • @churchapps/helpers -- Utilitários base (DateHelper, ApiHelper, etc.)
  • @churchapps/apihelper -- Utilitários de servidor Express incluindo autenticação, helpers de banco de dados e integrações AWS
Info

A API usa ES modules ("type": "module" no package.json). Certifique-se de que suas importações usem a sintaxe de ES module.

Nesta Seção