Перейти к основному содержимому

Архитектура

Эти страницы — это кросс-репозиторийные системные карты: они документируют, как работает основная система ChurchApps от конца к концу — по приложениям, модулям API и общим библиотекам — вместо того, как настраивается любой отдельный проект. Прочитайте их перед изменением поведения системы; прочитайте Установку для запуска проекта и раздел API для справки уровня конечной точки.

Экосистема в мгновение ока

ChurchApps это около 20 независимых репозиториев (не монорепо). Клиентские приложения разговаривают с небольшим набором бэк-энд API по HTTPS и WebSocket, и делят код через пакеты npm, опубликованные в области @churchapps.

┌────────────────────────────────┐            ┌──────────────────────────────────────────────┐
│ Clients │ │ Api — core modular monolith (AWS Lambda) │
│ │ │ │
│ B1Admin staff dashboard │ HTTPS │ membership attendance content │
│ B1App member portal + │ ─────────▶ │ giving messaging doing │
│ church websites │ │ │
│ B1Checkin check-in kiosk │ ◀───WS───▶ │ one MySQL database per module (6 total) │
│ B1Mobile (maintenance-only) │ └──────────────────────────────────────────────┘
│ FreePlay TV content player │ ┌──────────────────────────────────────────────┐
└───────────────┬────────────────┘ │ LessonsApi — Lessons.church backend │
│ └──────────────────────────────────────────────┘
│ shared code via npm (@churchapps/*)

helpers (cross-app interfaces) · apphelper (React components) · apihelper (Express/server utilities)

Два структурных правила формируют всё, задокументированное в этом разделе:

  1. Модули изолированы. Каждый модуль Api владеет своей базой данных и своими таблицами; другие модули и приложения достигают своих данных только через свои конечные точки REST. Смотрите Структура модуля.
  2. Общий код поставляется как пакеты npm. Приложения никогда не импортируют друг друга исходный код; всё повторное использование пересекает границы репозитория через @churchapps/helpers, @churchapps/apphelper или @churchapps/apihelper. Смотрите Общие библиотеки.

Системные карты

СтраницаЧто она охватываетОхватывает
Уведомления и напоминанияКак что-либо говорит человеку что-либо: две двери диспетчера, цепь эскалации канала и движок напоминанийApi (обмена сообщениями), B1Admin, B1App
Архитектура реального времениПлатформа доставки WebSocket за чатом, присутствием и доставкой в приложенииApi (обмена сообщениями), все веб приложения
Web Push УведомленияКанал push браузера: VAPID ключи, хранение подписки, доставкаApi (обмена сообщениями), все веб приложения
ПожертвованиеПоставщики платежей и шлюзы, потоки пожертвований, фонды/партии, вебхуки шлюзаApi (пожертвования), apphelper, B1App, B1Admin
Регистрации событияМодель регистрации коммерции: типы участников, выборы, коды скидок, платежи через шлюз пожертвований и список ожиданияApi (содержание + пожертвования), B1App, B1Admin
ВходыКиоск и самостоятельный вход, модель данных посещаемости, маршрутизация комнаты, слой безопасности детей, печать этикетокB1Checkin, B1App, B1Admin, Api (посещаемость + членство)
Конструктор веб-сайтаДерево страница/секция/элемент, контракт и рендеры типа элемента, блог, страницы с контролем доступа, SEO и создание AIApi (содержание), AskApi, helpers/apphelper, B1Admin, B1App
Маршрутизация веб-сайта и мульти-сайтКак запрос разрешает на церковь и конкретный сайт, модель данных siteId мульти-сайта и краевой Caddy пользовательского доменаB1App, Api (членство + содержание), B1Admin
ИнтеграцииПоверхность расширения: OAuth, ключи API, вебхуки, поставщики содержания, MCPApi, общие библиотеки, внешние приложения
Журнал аудита и отменяемые партииПо умолчанию включен аудит каждого изменения в точке удушения контроллера и слой партии, который делает импорт и массовые действия отменяемымиApi (все модули), B1Admin, B1Transfer
MinistryStuffПлатный сервис хранилища и кредитов текстирования: идентичность общего JWT, сервис-ключ S2S, текстирование и сохранение сеам поставщика, выставление StripeMinistryStuffApi, MinistryStuffWeb, Api (содержание + обмена сообщениями), texting/apihelper пакеты, B1Admin
Собственное хранилищеЦеркви ссылаются Google Drive, Dropbox, OneDrive или S3-совместимый ведро для загрузки прошлых 100MB свободных: OAuth подключение, формы загрузки для каждого поставщика, публичное перенаправление загрузкиApi (содержание + членство), helpers/apphelper пакеты, B1Admin, B1App
Совет

Когда изменение изменяет, как работает одна из этих систем — не просто страница внутри одного приложения — совпадающая системная карта здесь должна быть обновлена в том же усилии. Это держит этот раздел надёжным как первая остановка для новых участников.