API
ChurchApps API एक मॉड्यूलर मोनोलिथ है -- एक एकल कोडबेस जो छह अलग-अलग मॉड्यूल को सेवा प्रदान करता है, प्रत्येक का अपना डेटाबेस है। यह आर्किटेक्चर आपको माइक्रोसर्विसेज़ के संगठनात्मक लाभ (स्पष्ट सीमाएँ, स्वतंत्र डेटा स्टोर) एक एकल डिप्लॉयमेंट की परिचालन सरलता के साथ देता है।
मॉड्यूल
| मॉड्यूल | उद्देश्य |
|---|---|
| Membership | लोग, समूह, परिवार, अनुमतियाँ |
| Attendance | सेवाएँ, सत्र, चेक-इन रिकॉर्ड |
| Content | पृष्ठ, खंड, तत्व, स्ट्रीमिंग |
| Giving | दान, फंड, भुगतान प्रसंस्करण |
| Messaging | वार्तालाप, सूचनाएँ, ईमेल |
| Doing | कार्य, योजनाएँ, असाइनमेंट |
तकनीकी स्टैक
- रनटाइम: Node.js 22.x TypeScript के साथ (ES modules)
- फ्रेमवर्क: Express
- डिपेंडेंसी इंजेक्शन: Inversify (डेकोरेटर-आधारित रूटिंग)
- डेटाबेस: MySQL -- प्रत्येक मॉड्यूल के लिए एक डेटाबेस, प्रत्येक का अपना कनेक्शन पूल
- प्रमाणीकरण:
CustomAuthProviderके माध्यम से JWT-आधारित प्रमाणीकरण - डिप्लॉयमेंट: Serverless Framework v3 के माध्यम से AWS Lambda
पोर्ट
| प्रोटोकॉल | पोर्ट | विवरण |
|---|---|---|
| HTTP | 8084 | मुख्य REST API |
| WebSocket | 8087 | रीयल-टाइम सॉकेट कनेक्शन |
Lambda फंक्शन
AWS पर डिप्लॉय होने पर, API चार Lambda फंक्शन के रूप में चलता है:
web-- सभी HTTP अनुरोधों को संभालता हैsocket-- WebSocket कनेक्शन प्रबंधित करता हैtimer15Min-- ईमेल सूचनाओं के लिए हर 15 मिनट में चलता हैtimerMidnight-- डाइजेस्ट ईमेल और रखरखाव कार्यों के लिए दैनिक चलता है
साझा लाइब्रेरी
API दो साझा ChurchApps पैकेज पर निर्भर करता है:
@churchapps/helpers-- आधार उपयोगिताएँ (DateHelper, ApiHelper, आदि)@churchapps/apihelper-- Express सर्वर उपयोगिताएँ जिसमें प्रमाणीकरण, डेटाबेस हेल्पर्स और AWS एकीकरण शामिल हैं
जानकारी
API ES modules का उपयोग करता है (package.json में "type": "module")। सुनिश्चित करें कि आपके इम्पोर्ट ES module सिंटैक्स का उपयोग करते हैं।
इस खंड में
- स्थानीय सेटअप -- API को स्थानीय रूप से क्लोन, कॉन्फ़िगर और चलाएँ
- डेटाबेस -- डेटाबेस-प्रति-मॉड्यूल आर्किटेक्चर, स्कीमा स्क्रिप्ट और डेटा एक्सेस पैटर्न
- मॉड्यूल संरचना -- कंट्रोलर, रिपॉज़िटरी, मॉडल और प्रमाणीकरण
- एंडपॉइंट संदर्भ -- सभी मॉड्यूल के लिए पूर्ण REST API दस्तावेज़ीकरण