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

L

Backend

  • Framework: Laravel 11/12 (PHP 8.2+)
  • Authentication: Laravel Sanctum
  • Database: MySQL
  • PDF Generation: Barryvdh/DomPDF
  • Excel Support: Maatwebsite/Excel
R

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, and Region.
  • 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

  1. Git Pull: Fetch latest code.
  2. Composer Install: Install backend dependencies.
  3. Maintenance Mode: `php artisan down` (optional, usually skipped for zero-downtime).
  4. Migrations & Seeding:
    php artisan migrate --force
    php artisan db:seed --class=SystemDataSeeder --force
  5. Cache Optimization: Config, Route, and View caching.
./cpanel-deploy.sh