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

Обзор проектов

ChurchApps состоит из примерно 20 независимых репозиториев, опубликованных в организации ChurchApps на GitHub. Эта страница содержит полный перечень всех проектов, организованных по категориям, с указанием их фреймворков, портов и взаимосвязей.

Прежде чем начать

Бэкенд-API

Все API построены на Node.js, Express и TypeScript и развёрнуты в AWS Lambda через Serverless Framework.

ПроектНазначениеDev-портБаза данных
ApiОсновной модульный монолит, охватывающий membership, attendance, content, giving, messaging и doing8084Отдельная MySQL БД на модуль (6 всего)
LessonsApiБэкенд Lessons.church--Единая MySQL БД lessons
AskApiAI-инструмент запросов на базе OpenAI----
Информация

Основной проект Api — это модульный монолит. Каждый модуль (membership, attendance, content, giving, messaging, doing) имеет собственную базу данных и доступен по подпути, например /membership или /giving. В продакшене они представлены как отдельные Lambda-функции за API Gateway.

Веб-приложения

ПроектФреймворкDev-портНазначение
B1AdminReact 19 + Vite + MUI 73101Панель управления церковью
B1AppNext.js 16 + React 19 + MUI 73301Публичное приложение для членов церкви
LessonsAppNext.js 163501Фронтенд Lessons.church
B1TransferReact + Vite--Утилита импорта/экспорта данных
BrochureSitesStatic--Статические рекламные сайты церквей

Мобильные приложения

Все мобильные приложения используют React Native с Expo.

ПроектНазначениеКлючевые версии
B1MobileПриложение для членов церкви для iOS и AndroidExpo 54, React Native 0.81
B1CheckinПриложение-киоск для регистрацииExpo
LessonsScreenОтображение уроков на Android TVExpo
FreePlayВоспроизведение контента (включая TV OS)Expo
FreeShowRemoteМобильный пульт управления для FreeShowExpo

Десктоп

ПроектСтекНазначение
FreeShowElectron 37 + Svelte 3 + ViteПО для презентаций и богослужений

Общие библиотеки

Общий код публикуется в npm под областью @churchapps и потребляется как обычные npm-зависимости вышеуказанными проектами. Все общие пакеты находятся в одном репозитории — Packages — управляется как рабочее пространство Yarn и выпускается с помощью changesets.

ПакетНазначениеИспользуется
@churchapps/helpersБазовые утилиты и общие интерфейсы TypeScript (DateHelper, ApiHelper, CurrencyHelper и т.д.)Все проекты
@churchapps/apihelperУтилиты Express-сервера (аутентификация, базовые контроллеры, доступ к базе данных, интеграции AWS)Все API
@churchapps/apphelperБиблиотека React-компонентов с подпутями модулей для входа, пожертвований, форм, markdown и создания веб-сайтовВсе веб-приложения
@churchapps/content-providersАбстракция провайдера контента третьих сторон (Lessons.church, Planning Center, Dropbox и другие)Api, B1Admin, B1App, FreePlay
@churchapps/integration-sdkНабор инструментов интеграции B1.church: вебхуки, REST клиент, OAuthРазработчики внешних интеграций
@churchapps/textingАбстракция провайдера SMSApi

См. Общие библиотеки для настройки рабочего пространства и рабочего процесса выпуска.

Взаимосвязи проектов

Frontend Apps              Shared Libraries           Backend APIs
-------------- ---------------- ------------
B1Admin ──────┐
B1App ──────┤ @churchapps/helpers ◄───── Api
LessonsApp ──────┼──► @churchapps/apphelper LessonsApi
B1Mobile ──────┤ AskApi
FreeShow ──────┘ @churchapps/apihelper ◄────┘

Все фронтенд-приложения зависят от @churchapps/helpers. Веб-приложения дополнительно зависят от пакетов @churchapps/apphelper. Все бэкенд-API зависят как от @churchapps/helpers, так и от @churchapps/apihelper.

Следующие шаги