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 | 5173 | 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. Ceux-ci sont consommés en tant que dépendances npm régulières par les projets ci-dessus.
| Paquet | Nom npm | Objectif | Utilisé par |
|---|---|---|---|
| Helpers | @churchapps/helpers | Utilitaires de base (DateHelper, ApiHelper, CurrencyHelper, etc.) | Tous les projets |
| ApiHelper | @churchapps/apihelper | Utilitaires du serveur Express (middleware d'authentification, helpers de DB, intégration AWS) | Toutes les APIs |
| AppHelper | Espace de travail avec 6 paquets | Bibliothèque de composants React | Toutes les applications web |
| ContentProviderHelper | @churchapps/content-provider-helper | Fournisseurs de contenu YouTube, Vimeo et locaux | FreeShow, FreePlay, Api |
Sous-paquets AppHelper
Le projet AppHelper est un espace de travail monorepo qui publie six paquets :
| Paquet | Nom npm |
|---|---|
| Core | @churchapps/apphelper |
| Login | @churchapps/apphelper-login |
| Donations | @churchapps/apphelper-donations |
| Forms | @churchapps/apphelper-forms |
| Markdown | @churchapps/apphelper-markdown |
| Website | @churchapps/apphelper-website |
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