Comprehensive Church Management System
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.
## 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.