Yeqa uye kokucuketse lokuyinhloko

API

I-ChurchApps API yi-modular monolith -- codebase yinye lesebentela ema-module lasi-6 edatha, module ngayinye inedatabase yayo. Lomumo uniketa inzuzo yekuhlelwa yema-microservice (imincele lecacile, tigcini tedatha letimele) kanye nekulula kwekusebenta kwe-deployment yinye.

Ema-Module

ModuleInjongo
MembershipBantfu, emacembu, emakhaya, timvumo
AttendanceEma-service, ticgawu, imibhalo yekungena
ContentEmakhasi, tigaba, ema-element, kusakaza
GivingEminikelo, tikhwama, kucutjwa kwetinkhokhelo
MessagingTinkhulumo, tatiso, i-imeyili
DoingImisebenti, ema-plan, kwabelwa

Tech Stack

  • Runtime: Node.js 22.x ne-TypeScript (ema-ES module)
  • Framework: Express
  • Dependency Injection: Inversify (kubhalisa imikhondvo ngema-decorator)
  • Database: MySQL -- database yinye ku-module ngayinye, ngayinye inayo i-connection pool yayo
  • Auth: Kutivakalisa lokusekelwe yi-JWT nge-CustomAuthProvider
  • Deployment: AWS Lambda nge-Serverless Framework v3

Ema-Port

ProtocolPortIncazelo
HTTP8084I-REST API lesisekelo
WebSocket8087Kuxhumana kwe-socket kwesikhatsi lesiphila

Ema-Function e-Lambda

Nawudeployiwe ku-AWS, i-API isebenta njengema-function lasi-6 e-Lambda:

  • web -- Iphatsa tonkhe ticelo te-HTTP
  • socket -- Iphatsa kuxhumana kwe-WebSocket
  • timer15Min -- Isebenta njalo ngemizuzu langu-30 kutatiso te-imeyili (ligama ngelemlandvo)
  • timerMidnight -- Isebenta langa nga langa kuma-digest emeyili nemisebenti yekugcinwa
  • timerScheduledTasks -- Isebenta langa nga langa kuma-automation lasadzingeka kanye nekuchubekisa i-workflow lesendlulile sikhatsi
  • timerWebhooks -- Isebenta njalo ngemzuzu kuletfula ema-webhook laphumako lasesetja

Emaphakheji Lahlanganyelwako

I-API incike kumaphakheji lamabili la-ChurchApps lahlanganyelwako:

  • @churchapps/helpers -- Emathulusi lasisekelo (DateHelper, ApiHelper, njll.)
  • @churchapps/apihelper -- Emathulusi e-Express server lafaka kutivakalisa, ema-helper edatabase, kanye nekuhlanganiswa ne-AWS
imininingwane

I-API isebentisa ema-ES module ("type": "module" ku-package.json). Cinisekisa kutsi kungeniswa kwakho kusebentisa i-syntax ye-ES module.

Kulesigaba

  • Local Setup -- Klona, hlela, futsi usebentise i-API endzaweni yakho
  • Database -- Umumo we-database-nga-module ngayinye, ema-script e-schema, kanye netindlela tekufinyelela idatha
  • Module Structure -- Ema-controller, ema-repository, ema-model, kanye nekutivakalisa
  • API Keys -- Ema-token ekufinyelela lomuntfu kuma-script nema-connector
  • Connected Apps (OAuth) -- Inchubo ye-OAuth ye-multi-tenant kuma-app etitsatfu
  • Webhooks -- Tfumela tatiso temicimbi kuletinye tinsita
  • MCP Server -- I-endpoint ye-Model Context Protocol lekhipha i-API kubasiti be-AI
  • Endpoint Reference -- Emibhalo lephelele ye-REST API kuwo wonkhe ema-module