Overview
**My KMS** is a comprehensive Church Management System tailored for the **KNUST Church of Christ**. It digitizes the management of members, visitors, and alumni, while providing robust tools for attendance tracking, statistical reporting, and system-wide configurations.
The system is built to be **idempotent**, **secure**, and **scalable**, supporting multiple user roles including Super Admins, Admins, and Auditors.
Technology Stack
Backend
- Framework: Laravel 11/12 (PHP 8.2+)
- Authentication: Laravel Sanctum
- Database: MySQL
- PDF Generation: Barryvdh/DomPDF
- Excel Support: Maatwebsite/Excel
Frontend
- Library: React (TypeScript)
- Build Tool: Vite
- Styling: Tailwind CSS
- Icons: Lucide React
- State: React Context API
Installation & Setup
Backend Setup
# Clone repository
git clone
cd backend
# Install dependencies
composer install
# Environment Configuration
cp .env.example .env
# Edit .env database credentials
# Key Generation & Migrations
php artisan key:generate
php artisan migrate --seed --force
# Serve
php artisan serve
Frontend Setup
cd frontend
# Install dependencies
npm install
# Environment Configuration
# Create .env file
echo "VITE_API_URL=http://localhost:8000/api" > .env
# Run Development Server
npm run dev
System Architecture
Key Models
The system revolves around three core entity types:
-
Member
Core entity representing church members. Includes relations to
Zone,College,Program, andRegion. - Visitor Temporary records for tracking church visitors. Converts to Member upon decision.
- Alumni Historical archive for graduated members. Can be promoted from Member status.
System Data Strategy
To ensure data consistency, the system uses "System Data" models (`College`, `Program`, `Zone`,
`Region`).
These are seeded via SystemDataSeeder and are strictly enforced via Dropdowns in
the UI.
Note: The system logic is idempotent. Re-running seeders or deployment scripts will not duplicate data or corrupt state.
API Reference
All API routes are prefixed with /api.
AUTH Authentication
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/login | Login user & issue Sanctum token. |
| POST | /auth/check | Validate user existence before login. |
| POST | /auth/logout | Revoke current token. |
CORE Data Management
| Method | Endpoint | Description |
|---|---|---|
| GET | /members | List all members (uses pagination). |
| POST | /members | Create new member. |
| POST | /members/import | Bulk import from Excel/CSV. |
| PUT | /admin/system-data/* | CRUD for Colleges, Programs, Zones. |
Deployment Guide
The system uses cpanel-deploy.sh for automated zero-downtime deployments on
cPanel/Shared Hosting environments.
Workflow
- Git Pull: Fetch latest code.
- Composer Install: Install backend dependencies.
- Maintenance Mode: `php artisan down` (optional, usually skipped for zero-downtime).
- Migrations & Seeding:
php artisan migrate --forcephp artisan db:seed --class=SystemDataSeeder --force - Cache Optimization: Config, Route, and View caching.