Aller au contenu principal

Aperçu du projet

ChurchApps comprend environ 20 référentiels indépendants, chacun publié sous l'organisation GitHub ChurchApps. Cette page fournit un inventaire complet de tous les projets organisés par catégorie, ainsi que leurs frameworks, ports et relations.

Avant de commencer

  • Installer les prérequis pour la catégorie de projet sur laquelle vous voulez travailler

APIs backend

Toutes les APIs sont construites avec Node.js, Express et TypeScript, et sont déployées sur AWS Lambda via Serverless Framework.

ProjetObjectifPort de développementBase de données
ApiMonolithe modulaire core couvrant membership, attendance, content, giving, messaging et doing8084Bases de données MySQL séparées par module (6 au total)
LessonsApiBackend Lessons.church--Base de données MySQL unique lessons
AskApiOutil de requête IA alimenté par OpenAI----
info

Le projet Api core est un monolithe modulaire. Chaque module (membership, attendance, content, giving, messaging, doing) a sa propre base de données et est accessible à un sous-chemin tel que /membership ou /giving. En production, ceux-ci sont exposés en tant que fonctions Lambda séparées derrière API Gateway.

Applications web

ProjetFrameworkPort de développementObjectif
B1AdminReact 19 + Vite + MUI 73101Tableau de bord d'administration d'église
B1AppNext.js 16 + React 19 + MUI 73301Application publique des membres de l'église
LessonsAppNext.js 163501Frontend Lessons.church
B1TransferReact + Vite--Utilitaire d'importation/exportation de données
BrochureSitesStatique--Sites de brochure d'église statiques

Applications mobiles

Toutes les applications mobiles utilisent React Native avec Expo.

ProjetObjectifVersions clés
B1MobileApplication des membres de l'église pour iOS et AndroidExpo 54, React Native 0.81
B1CheckinApplication de kiosque de check-inExpo
LessonsScreenApplication Android TV pour l'affichage des leçonsExpo
FreePlayLecture de contenu (y compris TV OS)Expo
FreeShowRemoteTélécommande mobile pour FreeShowExpo

Bureau

ProjetPileObjectif
FreeShowElectron 37 + Svelte 3 + ViteLogiciel de présentation et d'adoration

Bibliothèques partagées

Le code partagé est publié sur npm sous le scope @churchapps et consommé en tant que dépendances npm régulières par les projets ci-dessus. Tous les packages partagés vivent dans un seul référentiel -- Packages -- géré en tant qu'espace de travail Yarn et publié avec changesets.

PaquetObjectifUtilisé par
@churchapps/helpersUtilitaires de base et interfaces TypeScript partagées (DateHelper, ApiHelper, CurrencyHelper, etc.)Tous les projets
@churchapps/apihelperUtilitaires du serveur Express (authentification, contrôleurs de base, accès à la base de données, intégrations AWS)Toutes les APIs
@churchapps/apphelperBibliothèque de composants React avec modules de sous-chemins pour connexion, donations, formulaires, markdown et création de sites webToutes les applications web
@churchapps/content-providersAbstraction de fournisseur de contenu tiers (Lessons.church, Planning Center, Dropbox, et autres)Api, B1Admin, B1App, FreePlay
@churchapps/integration-sdkEnsemble d'outils d'intégration B1.church : webhooks, client REST, OAuthDéveloppeurs d'intégration externes
@churchapps/textingAbstraction de fournisseur SMSApi

Voir Bibliothèques partagées pour la configuration de l'espace de travail et le flux de publication.

Relations des projets

Applications Frontend       Bibliothèques partagées    APIs Backend
-------------- ---------------- ------------
B1Admin ──────┐
B1App ──────┤ @churchapps/helpers ◄───── Api
LessonsApp ──────┼──► @churchapps/apphelper LessonsApi
B1Mobile ──────┤ AskApi
FreeShow ──────┘ @churchapps/apihelper ◄────┘

Toutes les applications frontend dépendent de @churchapps/helpers. Les applications web dépendent en outre des paquets @churchapps/apphelper. Toutes les APIs backend dépendent de @churchapps/helpers et @churchapps/apihelper.

Étapes suivantes