मुख्य सामग्री पर जाएं

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

पोर्ट

प्रोटोकॉलपोर्टविवरण
HTTP8084मुख्य REST API
WebSocket8087रीयल-टाइम सॉकेट कनेक्शन

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 सिंटैक्स का उपयोग करते हैं।

इस खंड में