Skip to the content.

KMP (Kingdom Management Portal) Developer Documentation

Table of Contents

Section Description
1. Introduction  
1.1 About KMP Overview of the Kingdom Management Portal project
1.2 Project Purpose Membership management system for SCA Kingdoms
1.3 System Requirements PHP 8.0+, MySQL, etc.
2. Getting Started  
2.1 Installation Setting up development environment
2.2 Configuration Configuration files and database setup
2.3 CakePHP Basics Brief overview of CakePHP framework
3. Architecture  
3.1 Core Foundation Architecture Application bootstrap, middleware stack, security architecture
3.2 Model Behaviors ActiveWindow, JsonField, and Sortable behaviors
3.3 Database Schema Complete database schema documentation
3.4 Migration Documentation Database migration history and patterns
3.5 ER Diagrams Entity relationship diagrams
3.6 Seed Documentation Data seeding framework and patterns
4. Core Modules  
4.1 Member Lifecycle Complete member lifecycle and data flow documentation
4.2 Branch Hierarchy Complete organizational structure and tree management documentation
4.3 Warrant Lifecycle Complete warrant state machine and approval process documentation
4.4 RBAC Security Architecture Complete RBAC system with warrant temporal validation layer
4.5 View Patterns Template system, helpers, and UI components
5. Plugins  
5.1 Officers Plugin Officers management and roster system
5.2 Awards Plugin Award recommendations and management system
5.3 Queue Plugin Background job processing system
5.4 GitHubIssueSubmitter Plugin User feedback submission to GitHub
5.5 Bootstrap Plugin UI framework integration
5.6 Activities Plugin Comprehensive authorization management system
6. Services Service layer architecture and implementations
7. Development Workflow  
7.1 Coding Standards PHP and JavaScript coding standards
7.2 Testing PHPUnit testing practices
7.3 Debugging Debugging tools and techniques
7.4 Git Workflow Version control workflow
8. Deployment  
8.1 Production Setup Server setup and configuration
8.2 Migrations Database migration handling
8.3 Updates Application update procedures
8.1 Development Workflow (Alternative) Additional development workflow documentation
9. UI Components  
9.1 Layouts Template layouts and structure
9.2 View Helpers Custom view helpers
9.3 Frontend Libraries JavaScript and CSS libraries
10. JavaScript Development  
10.1 JavaScript Framework Detailed Stimulus.JS framework implementation
11. Extending KMP  
11.1 Creating Plugins How to create plugins for extending KMP
11.2 Navigation and Event System How to add Navigation from a plugin and inject Plugin UI into Core Pages
11.3 Creating UI Components Extending the UI with custom cells
11.4 Database Models Adding custom database models to plugins
11.5 Best Practices Guidelines for effective plugin development
Appendices  
A. Troubleshooting Common issues and solutions
B. Glossary Terms specific to KMP and SCA
C. Resources Additional resources and references
For Kids Documentation Child-friendly introduction to KMP concepts

Quick Start Guide

For developers new to KMP:

  1. Start with Getting Started to set up your development environment
  2. Review Architecture to understand the system structure
  3. Explore Core Modules to learn about the main functionality
  4. Check Development Workflow for coding standards and practices

Documentation Status

This documentation is actively maintained and reflects the current state of the KMP codebase as of July 2025. Each section has been fact-checked against the actual source code to ensure accuracy.

Contributing

When contributing to KMP, please:

Support