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

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

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 75173Панель управления церковью
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-зависимости вышеуказанными проектами.

ПакетИмя в npmНазначениеИспользуется
Helpers@churchapps/helpersБазовые утилиты (DateHelper, ApiHelper, CurrencyHelper и т.д.)Все проекты
ApiHelper@churchapps/apihelperСерверные утилиты Express (auth middleware, DB helpers, интеграция с AWS)Все API
AppHelperWorkspace с 6 пакетамиБиблиотека React-компонентовВсе веб-приложения
ContentProviderHelper@churchapps/content-provider-helperПровайдеры контента YouTube, Vimeo и локальныеFreeShow, FreePlay, Api

Подпакеты AppHelper

Проект AppHelper — это монорепозиторий, публикующий шесть пакетов:

ПакетИмя в npm
Core@churchapps/apphelper
Login@churchapps/apphelper-login
Donations@churchapps/apphelper-donations
Forms@churchapps/apphelper-forms
Markdown@churchapps/apphelper-markdown
Website@churchapps/apphelper-website

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

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.

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