Comprehensive Church Management System

Job ID: 40532845

Budget: $10 – $30 USD

# Church Management System - Software Requirements Specification (SRS)

## 1. Project Information

### Project Name

**Church Management System (CMS)**

### Technology Stack

#### Frontend

* Laravel Blade Templates
* Bootstrap 5
* JavaScript / jQuery
* AJAX

#### Backend

* Laravel 12

#### Database

* MySQL

#### Authentication

* Laravel Authentication
* Role-Based Access Control (RBAC)

#### Hosting

* Apache/Nginx
* PHP 8.3+

---

# 2. Project Objective

The Church Management System will help churches manage:

* Church Members
* Tithes
* Offerings
* Sunday Collections
* Church Funds
* Bank Accounts
* Deposits
* Cash in Hand
* Financial Reports

The system provides transparency and accountability for church finances.

---

# 3. User Roles

## Administrator

Permissions:

* Manage Users
* Manage Members
* Manage Funds
* Manage Bank Accounts
* View Reports
* System Settings

---

## Treasurer

Permissions:

* Record Tithes
* Record Offerings
* Record Collections
* Record Deposits
* Allocate Funds
* View Financial Reports

---

## Pastor

Permissions:

* View Member Information
* View Financial Summaries
* View Reports

---

# 4. Functional Modules

---

# Module 1: Dashboard

### Purpose

Provide a quick overview of church finances.

### Dashboard Widgets

#### Financial Summary

* Total Tithes
* Total Offerings
* Total Collections
* Total Deposits
* Cash in Hand

#### Fund Summary

* General Fund Balance
* Building Fund Balance
* Mission Fund Balance
* Youth Fund Balance

#### Recent Transactions

* Latest Tithes
* Latest Collections
* Latest Deposits

#### Charts

* Monthly Income
* Fund Distribution
* Collection Trends

---

# Module 2: Member Management

### Add Member

Fields:

| Field | Type |
| --------------- | --------------- |
| Member No | Auto Generated |
| Full Name | Text |
| Gender | Dropdown |
| Date of Birth | Date |
| NIC/ID Number | Text |
| Mobile Number | Text |
| Email | Text |
| Address | Textarea |
| Membership Date | Date |
| Status | Active/Inactive |

---

### Edit Member

Update member details.

---

### View Member Profile

Display:

* Personal Information
* Tithe History
* Offering History
* Contribution Summary

---

### Search Members

Search by:

* Name
* Member Number
* Phone Number

---

# Module 3: Tithes Management

### Record Tithe

Fields:

| Field | Type |
| -------------- | ------------------------- |
| Receipt No | Auto Generated |
| Member | Dropdown |
| Date | Date |
| Amount | Decimal |
| Payment Method | Cash/Bank Transfer/Cheque |
| Notes | Textarea |

---

### Tithe Listing

View all tithes.

Filters:

* Date Range
* Member
* Amount

---

### Tithe Reports

Generate:

* Daily Report
* Monthly Report
* Annual Report
* Member Contribution Report

---

# Module 4: Offering Management

### Record Offering

Purpose:

Record offerings received during church services.

Fields:

| Field | Type |
| ------------ | -------------------------- |
| Offering No | Auto Generated |
| Service Date | Date |
| Service Type | Sunday / Midweek / Special |
| Amount | Decimal |
| Remarks | Text |

---

### Offering Reports

Filter by:

* Service Date
* Service Type

---

# Module 5: Collection Management

### Record Collection

Collections represent total money collected during a service.

Fields:

| Field | Type |
| ----------------- | -------------- |
| Collection No | Auto Generated |
| Service Date | Date |
| Service Type | Dropdown |
| Collection Amount | Decimal |
| Recorded By | User |
| Notes | Text |

---

### Collection Status

Each collection should show:

| Status | Meaning |
| --------------- | ------------------- |
| Pending | Not deposited |
| Partial Deposit | Partially deposited |
| Deposited | Fully deposited |

---

# Module 6: Church Fund Management

### Purpose

Allow money to be allocated into separate church funds.

### Fund Types

Default funds:

* General Fund
* Building Fund
* Mission Fund
* Youth Ministry Fund
* Charity Fund
* Maintenance Fund

### Create New Fund

Fields:

| Field | Type |
| ----------- | --------------- |
| Fund Name | Text |
| Description | Text |
| Status | Active/Inactive |

---

### Fund Allocation

Allocate collection money into funds.

Example:

Collection = Rs. 100,000

| Fund | Amount |
| ------------- | ------ |
| General Fund | 50,000 |
| Building Fund | 30,000 |
| Mission Fund | 20,000 |

Validation:

Allocated amount cannot exceed collection amount.

---

# Module 7: Bank Account Management

### Add Church Bank Account

Fields:

| Field | Type |
| -------------- | --------------- |
| Bank Name | Text |
| Account Name | Text |
| Account Number | Text |
| Branch Name | Text |
| Status | Active/Inactive |

---

### Multiple Bank Accounts

Example:

* Commercial Bank
* People's Bank
* Sampath Bank
* HNB Bank

---

# Module 8: Deposit Management

### Purpose

Track deposits made from church collections.

### Record Deposit

Fields:

| Field | Type |
| -------------------- | -------------- |
| Deposit No | Auto Generated |
| Deposit Date | Date |
| Collection Reference | Dropdown |
| Bank Account | Dropdown |
| Amount Deposited | Decimal |
| Deposit Slip No | Text |
| Deposited By | User |
| Remarks | Text |

---

### Deposit Validation

System checks:

```text
Deposit Amount <= Available Collection Balance
```

---

### Deposit Calculation

Example:

Collection = Rs. 120,000

Deposit 1 = Rs. 50,000

Deposit 2 = Rs. 40,000

Balance = Rs. 30,000

---

# Module 9: Cash Management

### Cash In Hand Calculation

Formula:

```text
Cash In Hand =
Total Collections
- Total Deposits
```

---

### Cash Summary Screen

Display:

| Description | Amount |
| ----------------- | ----------- |
| Total Collections | Rs. 500,000 |
| Total Deposits | Rs. 350,000 |
| Cash In Hand | Rs. 150,000 |

---

### Fund Balance Calculation

```text
Fund Balance =
Fund Allocations
- Fund Expenses
```

---

# Module 10: Expense Management

### Record Expense

Fields:

| Field | Type |
| ---------------- | -------------- |
| Expense No | Auto Generated |
| Expense Date | Date |
| Expense Category | Dropdown |
| Fund | Dropdown |
| Amount | Decimal |
| Description | Text |
| Attachment | File Upload |

---

### Expense Categories

* Utility Bills
* Pastor Allowance
* Building Maintenance
* Charity
* Event Expenses
* Equipment Purchase

---

### Validation

Expense amount cannot exceed fund balance.

---

# Module 11: Reports

## Financial Reports

### Collection Report

Displays:

* Collections
* Deposits
* Cash Balance

---

### Tithe Report

Displays:

* Member Contributions
* Monthly Totals
* Yearly Totals

---

### Offering Report

Displays:

* Offering Totals
* Service-wise Totals

---

### Fund Report

Displays:

* Allocations
* Expenses
* Current Balance

---

### Deposit Report

Displays:

* Deposits by Bank Account
* Deposit History

---

### Expense Report

Displays:

* Expenses by Fund
* Expenses by Category

---

# 5. Database Tables

### users

### roles

### members

### tithes

### offerings

### collections

### funds

### fund_allocations

### bank_accounts

### deposits

### expenses

### expense_categories

### reports_log

---

# 6. Business Rules

### BR-001

Members can make multiple tithe contributions.

### BR-002

Collections can have multiple deposits.

### BR-003

Deposits cannot exceed available collection balance.

### BR-004

Fund allocation cannot exceed collection amount.

### BR-005

Expenses must belong to a fund.

### BR-006

Expenses cannot exceed available fund balance.

### BR-007

Cash in Hand is automatically calculated.

### BR-008

Every transaction must be auditable.

---

# 7. Future Enhancements

### Church Operations

* Attendance Tracking
* Event Management
* Volunteer Management
* Prayer Request Management
* Baptism Records
* Marriage Records

### Finance

* Online Donations
* Mobile Money Integration
* Receipt Printing
* Budget Planning

### Communication

* SMS Notifications
* WhatsApp Integration
* Email Notifications

### Reporting

* PDF Export
* Excel Export
* Scheduled Reports

This Laravel version is suitable for a church with multiple treasurers, multiple bank accounts, multiple funds, and full tracking of collections → allocations → deposits → expenses → cash-in-hand.
Related categories: PHP MySQL Laravel