Архитектура
Эти страницы — это кросс-репозиторийные системные карты: они документируют, как работает основная система 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)
Два структурных правила формируют всё, задокументированное в этом разделе:
- Модули изолированы. Каждый модуль Api владеет своей базой данных и своими таблицами; другие модули и приложения достигают своих данных только через свои конечные точки REST. Смотрите Структура модуля.
- Общий код поставляется как пакеты 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 и создание AI | Api (содержание), AskApi, helpers/apphelper, B1Admin, B1App |
| Маршрутизация веб-сайта и мульти-сайт | Как запрос разрешает на церковь и конкретный сайт, модель данных siteId мульти-сайта и краевой Caddy пользовательского домена | B1App, Api (членство + содержание), B1Admin |
| Интеграции | Поверхность расширения: OAuth, ключи API, вебхуки, поставщики содержания, MCP | Api, общие библиотеки, внешние приложения |
| Журнал аудита и отменяемые партии | По умолчанию включен аудит каждого изменения в точке удушения контроллера и слой партии, который делает импорт и массовые действия отменяемыми | Api (все модули), B1Admin, B1Transfer |
| MinistryStuff | Платный сервис хранилища и кредитов текстирования: идентичность общего JWT, сервис-ключ S2S, текстирование и сохранение сеам поставщика, выставление Stripe | MinistryStuffApi, MinistryStuffWeb, Api (содержание + обмена сообщениями), texting/apihelper пакеты, B1Admin |
| Собственное хранилище | Церкви ссылаются Google Drive, Dropbox, OneDrive или S3-совместимый ведро для загрузки прошлых 100MB свободных: OAuth подключение, формы загрузки для каждого поставщика, публичное перенаправление загрузки | Api (содержание + членство), helpers/apphelper пакеты, B1Admin, B1App |
Когда изменение изменяет, как работает одна из этих систем — не просто страница внутри одного приложения — совпадающая системная карта здесь должна быть обновлена в том же усилии. Это держит этот раздел надёжным как первая остановка для новых участников.