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.
| Projet | Objectif | Port de développement | Base de données |
|---|---|---|---|
| Api | Monolithe modulaire core couvrant membership, attendance, content, giving, messaging et doing | 8084 | Bases de données MySQL séparées par module (6 au total) |
| LessonsApi | Backend Lessons.church | -- | Base de données MySQL unique lessons |
| AskApi | Outil de requête IA alimenté par OpenAI | -- | -- |
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
| Projet | Framework | Port de développement | Objectif |
|---|---|---|---|
| B1Admin | React 19 + Vite + MUI 7 | 3101 | Tableau de bord d'administration d'église |
| B1App | Next.js 16 + React 19 + MUI 7 | 3301 | Application publique des membres de l'église |
| LessonsApp | Next.js 16 | 3501 | Frontend Lessons.church |
| B1Transfer | React + Vite | -- | Utilitaire d'importation/exportation de données |
| BrochureSites | Statique | -- | Sites de brochure d'église statiques |
Applications mobiles
Toutes les applications mobiles utilisent React Native avec Expo.
| Projet | Objectif | Versions clés |
|---|---|---|
| B1Mobile | Application des membres de l'église pour iOS et Android | Expo 54, React Native 0.81 |
| B1Checkin | Application de kiosque de check-in | Expo |
| LessonsScreen | Application Android TV pour l'affichage des leçons | Expo |
| FreePlay | Lecture de contenu (y compris TV OS) | Expo |
| FreeShowRemote | Télécommande mobile pour FreeShow | Expo |
Bureau
| Projet | Pile | Objectif |
|---|---|---|
| FreeShow | Electron 37 + Svelte 3 + Vite | Logiciel 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.
| Paquet | Objectif | Utilisé par |
|---|---|---|
@churchapps/helpers | Utilitaires de base et interfaces TypeScript partagées (DateHelper, ApiHelper, CurrencyHelper, etc.) | Tous les projets |
@churchapps/apihelper | Utilitaires du serveur Express (authentification, contrôleurs de base, accès à la base de données, intégrations AWS) | Toutes les APIs |
@churchapps/apphelper | Bibliothèque de composants React avec modules de sous-chemins pour connexion, donations, formulaires, markdown et création de sites web | Toutes les applications web |
@churchapps/content-providers | Abstraction de fournisseur de contenu tiers (Lessons.church, Planning Center, Dropbox, et autres) | Api, B1Admin, B1App, FreePlay |
@churchapps/integration-sdk | Ensemble d'outils d'intégration B1.church : webhooks, client REST, OAuth | Développeurs d'intégration externes |
@churchapps/texting | Abstraction de fournisseur SMS | Api |
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
- Variables d'environnement -- Configurer vos fichiers
.envpour se connecter aux APIs - Configuration locale de l'API -- Configurer l'API backend localement