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
| Module | Injongo |
|---|---|
| Membership | Bantfu, emacembu, emakhaya, timvumo |
| Attendance | Ema-service, ticgawu, imibhalo yekungena |
| Content | Emakhasi, tigaba, ema-element, kusakaza |
| Giving | Eminikelo, tikhwama, kucutjwa kwetinkhokhelo |
| Messaging | Tinkhulumo, tatiso, i-imeyili |
| Doing | Imisebenti, 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
| Protocol | Port | Incazelo |
|---|---|---|
| HTTP | 8084 | I-REST API lesisekelo |
| WebSocket | 8087 | Kuxhumana 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-HTTPsocket-- Iphatsa kuxhumana kwe-WebSockettimer15Min-- Isebenta njalo ngemizuzu langu-30 kutatiso te-imeyili (ligama ngelemlandvo)timerMidnight-- Isebenta langa nga langa kuma-digest emeyili nemisebenti yekugcinwatimerScheduledTasks-- Isebenta langa nga langa kuma-automation lasadzingeka kanye nekuchubekisa i-workflow lesendlulile sikhatsitimerWebhooks-- 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