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:
- Start with Getting Started to set up your development environment
- Review Architecture to understand the system structure
- Explore Core Modules to learn about the main functionality
- 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:
- Follow the coding standards outlined in Development Workflow
- Update relevant documentation when making changes
- Run tests before submitting changes
- Review the Plugin Development Guide when creating extensions
Support
- Issues: Report issues through the GitHub repository
- Documentation: This comprehensive developer documentation
- Code Examples: See individual sections for implementation examples