Skip to main content

Church Management System

The Church Management System is a comprehensive RESTful API designed to streamline church operations, member management, and donation tracking. Built with Node.js, Express, and MongoDB, it provides a secure, scalable solution for modern church administration.

Key Features

Role-Based Access

Secure authentication with distinct Pastor and Member roles, powered by JWT tokens

Church Management

Create and manage churches with member tracking and organization tools

Donation Campaigns

Track donation campaigns with Stripe integration and automated verification

Member Profiles

Comprehensive member profiles with personal information and church affiliations

Email Notifications

Broadcast messages to all church members with integrated email support

Secure & Scalable

Built with industry-standard security practices using bcrypt and JWT

What You Can Build

The Church Management System API enables you to:
  • Member Management: Maintain detailed member profiles including personal information, contact details, and church membership status
  • Church Administration: Create and manage multiple churches with pastor oversight and member enrollment
  • Donation Tracking: Set up donation campaigns with target amounts, track contributions, and verify payments through Stripe
  • Communication: Send announcements and updates to all church members via email
  • Role-Based Operations: Implement secure workflows with pastor-only administrative functions and member participation features

Quick Example

Here’s how simple it is to register a new user and create a church:
# Register a pastor account
curl -X POST http://localhost:3001/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "securepass123",
    "role": "pastor"
  }'

# Login to get JWT token
curl -X POST http://localhost:3001/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "securepass123"
  }'

# Create a church (with JWT token)
curl -X POST http://localhost:3001/api/church/createchurch/:pastorId \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "name": "Grace Community Church",
    "address": "123 Main St, City, State",
    "supportcontact": {
      "phone": "555-0100",
      "email": "[email protected]",
      "website": "https://gracechurch.org"
    }
  }'

Architecture

The API is built with a clean, modular architecture:
  • Express Server: RESTful endpoints with body-parser middleware
  • MongoDB: Flexible NoSQL database with Mongoose ODM
  • JWT Authentication: Secure token-based authentication with bcrypt password hashing
  • Role-Based Access Control: Middleware-enforced authorization for pastor and member roles
  • Email Integration: Nodemailer for automated email notifications
  • Payment Processing: Stripe integration for donation handling

Next Steps

Quickstart

Get the API running locally in 5 minutes

Authentication

Learn about JWT-based authentication and authorization

API Reference

Explore all available endpoints and parameters

Setup Guide

Complete deployment and configuration guide

Build docs developers (and LLMs) love