Panoramica dei progetti
ChurchApps è composto da circa 20 repository indipendenti, tutti pubblicati sotto l'organizzazione GitHub ChurchApps. Questa pagina fornisce un inventario completo di tutti i progetti organizzati per categoria, con i relativi framework, porte e relazioni.
Prima di iniziare
- Installa i prerequisiti per la categoria di progetto su cui vuoi lavorare
API backend
Tutte le API sono costruite con Node.js, Express e TypeScript, e vengono distribuite su AWS Lambda tramite Serverless Framework.
| Progetto | Scopo | Porta dev | Database |
|---|---|---|---|
| Api | Monolite modulare principale che copre membership, attendance, content, giving, messaging e doing | 8084 | Database MySQL separato per modulo (6 totali) |
| LessonsApi | Backend di Lessons.church | -- | Singolo database MySQL lessons |
| AskApi | Strumento di query AI alimentato da OpenAI | -- | -- |
Il progetto Api principale è un monolite modulare. Ogni modulo (membership, attendance, content, giving, messaging, doing) ha il proprio database ed è accessibile tramite un sottopercorso come /membership o /giving. In produzione, questi vengono esposti come funzioni Lambda separate dietro API Gateway.
App web
| Progetto | Framework | Porta dev | Scopo |
|---|---|---|---|
| B1Admin | React 19 + Vite + MUI 7 | 5173 | Dashboard di amministrazione della chiesa |
| B1App | Next.js 16 + React 19 + MUI 7 | 3301 | App pubblica per i membri della chiesa |
| LessonsApp | Next.js 16 | 3501 | Frontend di Lessons.church |
| B1Transfer | React + Vite | -- | Utilità di importazione/esportazione dati |
| BrochureSites | Static | -- | Siti web brochure statici per chiese |
App mobili
Tutte le app mobili utilizzano React Native con Expo.
| Progetto | Scopo | Versioni principali |
|---|---|---|
| B1Mobile | App per i membri della chiesa per iOS e Android | Expo 54, React Native 0.81 |
| B1Checkin | App kiosk per il check-in | Expo |
| LessonsScreen | Display per lezioni su Android TV | Expo |
| FreePlay | Riproduzione contenuti (incluso TV OS) | Expo |
| FreeShowRemote | Telecomando mobile per FreeShow | Expo |
Desktop
| Progetto | Stack | Scopo |
|---|---|---|
| FreeShow | Electron 37 + Svelte 3 + Vite | Software per presentazioni e culto |
Librerie condivise
Il codice condiviso viene pubblicato su npm con lo scope @churchapps. Queste vengono consumate come normali dipendenze npm dai progetti sopra elencati.
| Pacchetto | Nome npm | Scopo | Usato da |
|---|---|---|---|
| Helpers | @churchapps/helpers | Utilità base (DateHelper, ApiHelper, CurrencyHelper, ecc.) | Tutti i progetti |
| ApiHelper | @churchapps/apihelper | Utilità server Express (auth middleware, DB helpers, integrazione AWS) | Tutte le API |
| AppHelper | Workspace con 6 pacchetti | Libreria di componenti React | Tutte le app web |
| ContentProviderHelper | @churchapps/content-provider-helper | Provider di contenuti YouTube, Vimeo e locali | FreeShow, FreePlay, Api |
Sotto-pacchetti AppHelper
Il progetto AppHelper è un workspace monorepo che pubblica sei pacchetti:
| Pacchetto | Nome npm |
|---|---|
| Core | @churchapps/apphelper |
| Login | @churchapps/apphelper-login |
| Donations | @churchapps/apphelper-donations |
| Forms | @churchapps/apphelper-forms |
| Markdown | @churchapps/apphelper-markdown |
| Website | @churchapps/apphelper-website |
Relazioni tra progetti
Frontend Apps Shared Libraries Backend APIs
-------------- ---------------- ------------
B1Admin ──────┐
B1App ──────┤ @churchapps/helpers ◄───── Api
LessonsApp ──────┼──► @churchapps/apphelper LessonsApi
B1Mobile ──────┤ AskApi
FreeShow ──────┘ @churchapps/apihelper ◄────┘
Tutte le app frontend dipendono da @churchapps/helpers. Le app web dipendono inoltre dai pacchetti @churchapps/apphelper. Tutte le API backend dipendono sia da @churchapps/helpers che da @churchapps/apihelper.
Prossimi passi
- Variabili d'ambiente -- Configura i file
.envper connetterti alle API - Setup locale dell'API -- Configura l'API backend in locale