Skip to content

24Skater/StewardChMS

Steward Logo

Steward Β· ChMS

Modern Church Management System

Manage members, families, ministries, events, worship, communication, giving, and reporting β€” all in one place.


Status TypeScript React License


Getting Started Β· Features Β· Architecture Β· Screenshots Β· Contributing




🎯 What is Steward · ChMS?

Steward Β· ChMS is a comprehensive, open-source Church Management System built for modern ministry teams. Part of the Steward ecosystem (alongside Steward Β· POS), it helps churches:


People

Steward People
Track members, families, and engagement


Events

Simplify Admin
Events, check-in, and scheduling


Communication

Empower Leaders
Communication and group tools


Reports

Ensure Transparency
Giving, accounting, and reports



✨ Features

πŸ‘₯ People & Families

Feature Description
Member Profiles Comprehensive CRM with photos, contact info, and custom fields
Household Linking Connect family members with relationship tracking
Notes & Tags Add private pastoral notes and searchable tags
CSV Import Bulk import members from spreadsheets
Search & Filter Find anyone instantly with smart search

πŸ›οΈ Ministries & Groups

Feature Description
Ministry Hierarchy Organize Church β†’ Ministry β†’ Group structures
Group Management Create small groups, classes, and teams
Member Assignment Add members to multiple groups
Leader Permissions Scope access by ministry or group

πŸ“… Events & Check-In

Feature Description
Event Scheduling One-time and recurring events
Online Registration Let members sign up for events
Attendance Tracking Manual check-in and QR scanning
Kids Check-In Secure child check-in with security codes
Kiosk Mode Self-service check-in station
Label Printing Print name tags with allergy alerts

🎡 Worship Planning

Feature Description
Song Library Store songs with keys, BPM, and lyrics
Service Plans Build worship sets linked to events
Key Transposition Track preferred keys for vocalists
Rehearsal Notes Add notes for band members

πŸ“£ Communication Center

Feature Description
Email & SMS Send messages via email or text
Group Targeting Message specific ministries or groups
Templates Create reusable message templates
Message History Track all sent communications
Opt-In Management Respect communication preferences

πŸ’° Giving & Accounting

Feature Description
Online Giving Accept donations via Stripe
Donation Tracking Record cash, check, and card gifts
Pledge Management Track commitment and fulfillment
Fund Accounting Multiple funds with restrictions
Donor Statements Generate year-end tax statements
Expense Tracking Record and categorize expenses
Vendor Management Track payees and payment history
Invoices & POs Professional financial documents

πŸ“Š Reports & Analytics

Feature Description
Membership Reports Status summaries and missing data alerts
Attendance Reports Track trends by event and member
Giving Reports Fund totals and donor analytics
Financial Reports Income vs. expense summaries
CSV Export Download any report as spreadsheet
PDF Generation Print-ready formatted reports

πŸ›’ Sales & Fundraising

Feature Description
Product Catalog Manage items for sale
Inventory Tracking Real-time stock levels
Simple POS Quick point-of-sale transactions
Sales Reports Revenue and inventory analysis


πŸ—οΈ Architecture

Frontend Stack

Technology Purpose
Vite Build tool & dev server
React 18 UI framework
TypeScript Type safety
React Router Client-side routing
Tailwind CSS Utility-first styling
shadcn/ui UI component library
TanStack Query Server state management
React Hook Form Form handling
Zod Validation schemas
jsPDF PDF generation

Backend Stack

Technology Purpose
Node.js Runtime environment
Express Web framework
PostgreSQL Database
Prisma ORM & migrations
JWT Authentication tokens
bcryptjs Password hashing
Helmet Security headers
Stripe Payment processing
Zod API validation

Design Principles

πŸ” Security First      Role-based access control on every endpoint
πŸ“¦ Modular Design      Feature-based code organization
πŸ”— API-Driven          Clean separation of frontend and backend
πŸ“ Audit-Friendly      Comprehensive logging for compliance
β›ͺ Church-Specific     Built for ministry, not adapted from generic CRM


πŸ“ Repository Structure

StewardChMS/
β”œβ”€β”€ πŸ“‚ frontend/              # React application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/       # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/            # Route pages
β”‚   β”‚   β”œβ”€β”€ hooks/            # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ context/          # React context providers
β”‚   β”‚   └── lib/              # Utilities and API client
β”‚   └── public/               # Static assets & logos
β”‚
β”œβ”€β”€ πŸ“‚ backend/               # Express API server
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ routes/           # API endpoints
β”‚   β”‚   β”œβ”€β”€ middleware/       # Auth, rate limiting, etc.
β”‚   β”‚   └── lib/              # Shared utilities
β”‚   └── prisma/
β”‚       β”œβ”€β”€ schema.prisma     # Database schema
β”‚       └── seed.ts           # Initial data seeding
β”‚
β”œβ”€β”€ πŸ“‚ shared/                # Shared types and schemas
β”‚
β”œβ”€β”€ πŸ“‚ docs/                  # Documentation
β”‚   β”œβ”€β”€ spec.md               # System specification
β”‚   β”œβ”€β”€ decisions.md          # Architecture decision log
β”‚   └── cursor-rules.md       # AI development guidelines
β”‚
β”œβ”€β”€ πŸ“„ docker-compose.yml     # Container orchestration
└── πŸ“„ package.json           # Monorepo root


πŸš€ Getting Started

Prerequisites

  • Node.js 20+
  • PostgreSQL 14+ (or Docker)
  • npm 9+

Quick Start

# 1. Clone the repository
git clone https://github.com/24Skater/StewardChMS.git
cd StewardChMS

# 2. Install dependencies
npm install

# 3. Set up environment
cp backend/.env.example backend/.env
# Edit .env with your database URL

# 4. Initialize database
cd backend
npx prisma db push
npx prisma db seed

# 5. Start development servers
cd ..
npm run dev

Using Docker

# Start with existing PostgreSQL container
docker-compose -f docker-compose.existing-db.yml up -d

# Or start everything fresh
docker-compose up -d

Access the Application

Service URL
Frontend http://localhost:5173
Backend API http://localhost:3001
API Health http://localhost:3001/api/health
Giving Portal http://localhost:5173/give
Kiosk Mode http://localhost:5173/kids-checkin/kiosk

Default Credentials

Email:    admin@example.com
Password: admin123

⚠️ Change these immediately in production!



πŸ”§ Configuration

Environment Variables

Variable Description Default
DATABASE_URL PostgreSQL connection string Required
JWT_SECRET Token signing secret Generate for production
CORS_ORIGIN Allowed frontend origin http://localhost:5173
STRIPE_SECRET_KEY Stripe API key Optional
STRIPE_WEBHOOK_SECRET Stripe webhook secret Optional

Admin Settings

Configure these in Admin β†’ Settings after first login:

  • Branding - Church name, logo, primary color
  • Email - SMTP or SendGrid configuration
  • Giving - Enable online giving, set up Stripe


πŸ§ͺ Development

Available Scripts

# Run all services in development
npm run dev

# Run frontend only
npm run dev -w frontend

# Run backend only
npm run dev -w backend

# Type checking
npm run typecheck

# Linting
npm run lint

# Run tests
npm test

# Database operations
npm run db:push -w backend    # Push schema
npm run db:seed -w backend    # Seed data
npm run db:studio -w backend  # Open Prisma Studio

Testing

# Run all tests
npm test

# Run frontend tests
npm test -w frontend

# Run backend tests
npm test -w backend

# Run with coverage
npm test -- --coverage


πŸ—ΊοΈ Roadmap

βœ… Completed

  • Authentication & RBAC
  • Member Management
  • Household Linking
  • Events & Worship Planning
  • Communication Center
  • Giving & Accounting
  • Reporting & Exports
  • Sales & Inventory
  • Setup Wizard
  • Admin Settings
  • Groups & Ministries
  • Kids Check-In
  • Online Giving Portal
  • CI/CD Pipeline

πŸ”œ Coming Soon

  • Mobile-responsive improvements
  • Push notifications
  • Calendar integrations
  • Multi-campus support
  • Advanced reporting dashboards
  • Volunteer scheduling


🀝 Contributing

Contributions are welcome! Please read our contributing guidelines and code of conduct.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request


πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.



✝️ A Note on Purpose

Steward Β· ChMS was built as an expression of faith in the Lord Jesus Christ.

The Church is called to steward people, time, and resources with integrity, excellence, and love. This project exists to serve that calling by providing tools that help churches care well for their communities and operate with transparency and faithfulness.


"Moreover it is required in stewards, that a man be found faithful."
β€” 1 Corinthians 4:2 (KJV)



Built with ❀️ for the Church


Steward Mark

About

StewardChMS is a modern Church Management System for managing members, families, events, worship planning, communication, giving, and reporting.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages