Przejdź do zawartości głównej

Project Overview

ChurchApps consists of approximately 20 independent repositories, each published under the ChurchApps GitHub organization. This page provides a complete inventory of all projects organized by category, along with their frameworks, ports, and relationships.

Before You Begin

  • Install the prerequisites for the project category you want to work on

Backend APIs

All APIs are built with Node.js, Express, and TypeScript, and are deployed to AWS Lambda via Serverless Framework.

ProjectPurposeDev PortDatabase
ApiCore modular monolith covering membership, attendance, content, giving, messaging, and doing8084Separate MySQL database per module (6 total)
LessonsApiLessons.church backend--Single lessons MySQL database
AskApiAI query tool powered by OpenAI----
informacja

The core Api project is a modular monolith. Each module (membership, attendance, content, giving, messaging, doing) has its own database and is accessible at a subpath such as /membership or /giving. In production, these are exposed as separate Lambda functions behind API Gateway.

Web Apps

ProjectFrameworkDev PortPurpose
B1AdminReact 19 + Vite + MUI 73101Church administration dashboard
B1AppNext.js 16 + React 19 + MUI 73301Public-facing church member app
LessonsAppNext.js 163501Lessons.church frontend
B1TransferReact + Vite--Data import/export utility
BrochureSitesStatic--Static church brochure websites

Mobile Apps

All mobile apps use React Native with Expo.

ProjectPurposeKey Versions
B1MobileChurch member app for iOS and AndroidExpo 54, React Native 0.81
B1CheckinCheck-in kiosk appExpo
LessonsScreenAndroid TV lesson displayExpo
FreePlayContent playback (including TV OS)Expo
FreeShowRemoteMobile remote control for FreeShowExpo

Desktop

ProjectStackPurpose
FreeShowElectron 37 + Svelte 3 + VitePresentation and worship software

Shared Libraries

Shared code is published to npm under the @churchapps scope and consumed as regular npm dependencies by the projects above. All shared packages live in a single repository -- Packages -- managed as a Yarn workspace and released with changesets.

PackagePurposeUsed By
@churchapps/helpersBase utilities and shared TypeScript interfaces (DateHelper, ApiHelper, CurrencyHelper, etc.)All projects
@churchapps/apihelperExpress server utilities (auth, base controllers, database access, AWS integrations)All APIs
@churchapps/apphelperReact component library with subpath modules for login, donations, forms, markdown, and website buildingAll web apps
@churchapps/content-providersThird-party content provider abstraction (Lessons.church, Planning Center, Dropbox, and others)Api, B1Admin, B1App, FreePlay
@churchapps/integration-sdkB1.church integration toolkit: webhooks, REST client, OAuthExternal integration developers
@churchapps/textingSMS provider abstractionApi

See Shared Libraries for workspace setup and the release workflow.

Project Relationships

Frontend Apps              Shared Libraries           Backend APIs
-------------- ---------------- ------------
B1Admin ──────┐
B1App ──────┤ @churchapps/helpers ◄───── Api
LessonsApp ──────┼──► @churchapps/apphelper LessonsApi
B1Mobile ──────┤ AskApi
FreeShow ──────┘ @churchapps/apihelper ◄────┘

All frontend apps depend on @churchapps/helpers. Web apps additionally depend on @churchapps/apphelper packages. All backend APIs depend on both @churchapps/helpers and @churchapps/apihelper.

Next Steps