Logo Lanfrica

jameskoero/ChurchOS

Domain:

socioeconomic

Record type:

software
Creator:
jam
Host:
Africa-first multi-tenant SaaS for church governance, finance, and member management. Flask + React + PostgreSQL + M-Pesa. # ChurchOS (CDMS) — Church Digital Management System > Africa-first multi-tenant SaaS for church governance, financial management, > and member administration. **Backend:** `churchos-yitr.onrender.com` | **Frontend:** `churchos-app.vercel.app` **Version:** v2.0.0 | **Maintainer:** James Koero · Kisumu, Kenya --- ## Table of Contents 1. Problem Statement 2. Research Questions 3. Methodology and Design Decisions 4. System Architecture 5. Tech Stack 6. Features 7. Data Models 8. API Reference 9. Local Development 10. Deployment 11. Environment Variables 12. Security 13. Roadmap 14. Changelog 15. Author --- ## 1. Problem Statement African churches are among the most active social institutions on the continent, yet most still run on paper ledgers, WhatsApp groups, and verbal attendance rolls. A mid-sized church in Kisumu with 300 members and weekly tithes above KES 50,000 has no reliable way to reconcile M-Pesa STK push confirmations against its offering records, track attendance over time, or produce a clean monthly financial report. Generic SaaS tools like Planning Center or Breeze are designed for American church structures. They assume credit cards, flat membership hierarchies, and US dollar pricing. They have no awareness of the Bishop → Overseer → Pastor → Leader → Member governance chain that defines most Pentecostal and evangelical denominations in East and Central Africa. They have no M-Pesa integration. ChurchOS is a direct answer to that gap. --- ## 2. Research Questions - What does a church actually need to manage? → Members, Attendance, Finance, Events - What hierarchy does African Pentecostal governance follow? → 5-tier RBAC - How should money move through the system? → M-Pesa as first-class citizen - What happens when the internet is unstable? → PWA with offline service worker - How should multi-tenancy be enforced? → church_id filter at ORM layer --- ## 3. Methodology and Design Decisions **Why Flask, not Django?** F …