MCPcopy Index your code
hub / github.com/ChurchApps/B1Admin

github.com/ChurchApps/B1Admin @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
2,855 symbols 6,507 edges 626 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

B1Admin

B1Admin is completely free, open-source church management software that allows you to manage key data on church members and visitors. It offers comprehensive features including member and guest information tracking, attendance management with a self check-in app, group coordination, donation tracking with detailed reports, and custom form creation. Visit https://b1.church/ to learn more.

<img style="width: 49%;" src="https://github.com/ChurchApps/B1Admin/assets/1447203/ccb5dc7b-8c0d-4320-abac-a3128c42beff">
<img style="width: 49%;" src="https://github.com/ChurchApps/B1Admin/assets/1447203/ac8593f1-0ae7-45aa-972e-82eaaf0dd639">






<img style="width: 49%;" src="https://github.com/ChurchApps/B1Admin/assets/1447203/20f41345-da7d-460a-a64f-224b612ad976">
<img style="width: 49%;" src="https://github.com/ChurchApps/B1Admin/assets/1447203/ab7c109b-e4e4-4ac5-8b10-fa8cd633ccfd">

Get Involved

🤝 Help Support Us

The only reason this program is free is because of the generous support from users. If you want to support us to keep this free, please head over to ChurchApps or sponsor us on GitHub. Thank you so much!

🏘️ Join the Community

We have a great community for end-users on Facebook. It's a good way to ask questions, get tips and follow new updates. Come join us!

⚠️ Report an Issue

If you discover an issue or have a feature request, simply submit it to our issues log. Don't be shy, that's how the program gets better.

💬 Join us on Slack

If you would like to contribute in any way, head over to our Slack Channel and introduce yourself. We'd love to hear from you.

🏗️ Start Coding

If you'd like to set up the project locally, see our development guide. The short version is:

  1. Copy dotenv.sample.txt to .env and updated it to point to the appropriate API urls.
  2. Install the dependencies with: npm install
  3. Run npm run postinstall to get language files
  4. run npm start to launch the project.

⚙️ Payment Gateway Setup

To accept online donations you must first register for developer credentials with one of the supported payment providers:

  • Stripe: Visit https://dashboard.stripe.com/register (or sign in at https://dashboard.stripe.com/login), then navigate to Developers → API keys to copy your Publishable Key and Secret Key for both test and live modes.
  • PayPal: Go to https://developer.paypal.com/, log in or create an account, then under My Apps & Credentials create a new application to obtain your Sandbox and Live Client ID and Secret.
  • KingdomFunding: Kingdom Funding is a payment processing option built with Christian values in mind! To get started:
  • Visit the Kingdom Funding signup page (https://kingdomfunding.org/begin-registration/?sponsor=b1) and fill out the application form.
  • Kingdom Funding will walk you through the account onboarding process, including identity verification and bank account setup.
  • Once your account is approved, you will receive your API Source Key (private key) and Tokenization Key (public key) from the merchant portal.
  • In B1Admin, go to Settings → Giving Settings, select Kingdom Funding as the provider, paste in your Public Key (Tokenization Key) and Private Key (API Source Key), and save.
  • Configure the webhook URL in your Kingdom Funding (NMI) merchant portal so the system gets notified about transaction state changes (recurring charges, ACH settlements, returns):
    • URL: https://api.churchapps.org/giving/donate/webhook/kingdomfunding?churchId={YOUR_CHURCH_ID} (replace {YOUR_CHURCH_ID} with the church ID from B1Admin — the exact URL is also shown with a copy button in Giving Settings when Kingdom Funding is selected)
    • Kingdom Funding does not generate a signing key for you: choose your own secret, enter it on the webhook endpoint in the merchant portal, and paste the same value into the Webhook Key field in B1Admin's Giving Settings. Both sides must match — webhooks are rejected if the key is missing or wrong.
    • Subscribe at minimum to: transaction.sale.success, transaction.auth.success, the refund events, and the ACH check.* status events (e.g. check.status.settled, check.status.returned).

After obtaining your tokens, open Settings → Giving Settings in B1Admin, select the provider, paste in your Public and Private keys, and toggle "Pay Fees" as desired. Finally, configure your fee parameters in Fee Options.

B1Admin Dev Setup

🚀 Self-Hosting (Beta)

If you'd like to deploy your own copy on Railway, you can use our template below. This is currently in beta — feedback welcome.

Deploy on Railway

Extension points exported contracts — how you extend this code

ElementClass (Interface)
(no doc) [1 implementers]
types/jsx.d.ts
Props (Interface)
(no doc)
src/UserContext.tsx
ThemeContextType (Interface)
(no doc)
src/ThemeContext.tsx
Palette (Interface)
(no doc)
src/App.tsx
GroupHealthRow (Interface)
(no doc)
src/groups/GroupsHealthPage.tsx
Props (Interface)
(no doc)
src/donationComponents/DonationPage.tsx
Props (Interface)
(no doc)
src/components/ErrorBoundary.tsx
Props (Interface)
(no doc)
src/sermons/components/PlaylistEdit.tsx

Core symbols most depended-on inside this repo

useConfirmDelete
called by 53
src/hooks/useConfirmDelete.tsx
login
called by 53
tests/helpers/auth.ts
confirmDelete
called by 50
tests/helpers/fixtures.ts
navigateTo
called by 40
tests/helpers/navigation.ts
text
called by 37
src/site/admin/templates/sectionTemplates.ts
handleSubmit
called by 35
src/components/CreatePerson.tsx
openPersonRow
called by 29
tests/helpers/fixtures.ts
editIconButton
called by 29
tests/helpers/fixtures.ts

Shape

Function 2,255
Interface 552
Class 28
Method 20

Languages

TypeScript100%

Modules by API surface

src/site/admin/ContentEditor.tsx53 symbols
src/site/admin/elements/ElementEdit.tsx48 symbols
src/helpers/Interfaces.ts40 symbols
src/site/admin/Section.tsx24 symbols
tests/helpers/navigation.ts21 symbols
src/site/admin/templates/sectionTemplates.ts21 symbols
src/site/admin/a11yChecker.ts21 symbols
src/sermons/components/Sermons.tsx20 symbols
src/people/components/AdvancedPeopleSearch.tsx19 symbols
src/site/hooks/useUndoRedo.ts18 symbols
src/site/admin/SectionEdit.tsx18 symbols
src/serving/tasks/workflows/WorkflowBoardPage.tsx18 symbols

For agents

$ claude mcp add B1Admin \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact