School Management System
A comprehensive WordPress-based School Management System for streamlined administrative tasks, communication, and financial management.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/kiunye/school_management_system/archive/refs/heads/main.zipA comprehensive WordPress-based School Management System designed to streamline administrative tasks, enhance communication between stakeholders, and provide robust financial and academic management capabilities.
Features
Academic Management
- Student Management: Complete student lifecycle from admission to graduation
- Class Management: Dynamic class creation with capacity management
- Attendance Tracking: Real-time attendance marking with parent notifications
- Timetable Management: Drag-and-drop timetable builder with conflict detection
- Grade Management: Comprehensive grading and progress tracking
Financial Management
- Fee Structure Management: Flexible fee types with installment options
- Multi-Gateway Payments: M-Pesa, Airtel Money, and bank transfer integration
- Invoice Generation: Automated invoice creation and management
- Payment Tracking: Real-time payment status and history
- Financial Reporting: Comprehensive financial analytics
Communication System
- SMS Integration: Bulk SMS via Africastalking API
- Notice Board: Targeted announcements with file attachments
- Parent Notifications: Automated alerts for attendance and payments
- Multi-channel Communication: SMS, email, and in-app messaging
Transport Management
- Route Management: Transport route creation with stops and timing
- Student Assignment: Capacity-aware student-route assignments
- Driver Management: Driver information and vehicle tracking
- Transport Fees: Automated transport fee calculation
Reports & Analytics
- Financial Reports: Income, expense, and cash flow analysis
- Academic Reports: Attendance, performance, and enrollment statistics
- Export Options: PDF, Excel, and CSV export formats
- Real-time Dashboards: Role-based dashboard views
User Management
- Role-based Access: Administrator, Teacher, Parent, and Student roles
- Custom Permissions: Granular capability management
- Automated Account Creation: Parent accounts created during student enrollment
- Secure Authentication: WordPress-native security with custom enhancements
Technical Specifications
Requirements
- WordPress: 6.0 or higher
- PHP: 8.0 or higher
- Database: MySQL 8.0+ or MariaDB 10.5+
- Required Plugins: Advanced Custom Fields Pro, User Role Editor
Architecture
- Plugin-based Architecture: Modular WordPress plugin structure
- Custom Post Types: Core entities (students, classes, fees, etc.)
- Custom Taxonomies: Academic classifications and categorization
- REST API: External integrations and mobile app support
- Responsive Design: Mobile-first responsive interface
Third-party Integrations
- Africastalking SMS API: Bulk SMS communication
- M-Pesa STK Push: Mobile money payments
- Airtel Money API: Alternative mobile payment option
- WordPress SMTP: Email communication
Installation
Prerequisites
- WordPress 6.0+ installation
- PHP 8.0+ with required extensions
- MySQL 8.0+ or MariaDB 10.5+
- Advanced Custom Fields Pro plugin
- User Role Editor plugin
Configuration
Initial Setup
- School Information: Configure basic school details
- Academic Year: Set up current academic year and terms
- User Roles: Review and customize user permissions
- Payment Gateways: Configure M-Pesa, Airtel Money settings
- SMS Service: Set up Africastalking API credentials
Payment Gateway Configuration
M-Pesa Setup
// M-Pesa configuration in SMS Settings
$mpesa_config = [
'environment' => 'sandbox', // or 'production'
'consumer_key' => 'your_consumer_key',
'consumer_secret' => 'your_consumer_secret',
'shortcode' => 'your_shortcode',
'passkey' => 'your_passkey'
];
Africastalking SMS Setup
// SMS configuration in SMS Settings
$sms_config = [
'username' => 'your_username',
'api_key' => 'your_api_key',
'sender_id' => 'your_sender_id'
];
📖 Usage
For Administrators
- Student Management: Add students, manage enrollments, track progress
- Financial Management: Set up fees, generate invoices, monitor payments
- System Configuration: Configure payment gateways, SMS settings, user roles
- Reporting: Generate comprehensive reports and analytics
For Teachers
- Attendance Marking: Mark daily attendance for assigned classes
- Student Records: View and update student academic information
- Communication: Send messages to parents and students
- Timetable Management: View and manage teaching schedules
For Parents
- Child Monitoring: View child's attendance, grades, and progress
- Fee Payments: Pay school fees using mobile money or bank transfer
- Communication: Receive notifications and communicate with teachers
- School Updates: Access school notices and announcements
Development
Development Setup
# Clone the repository
git clone https://github.com/school-management-system/sms.git
# Install dependencies
composer install
# Set up local development environment
wp core download
wp config create --dbname=sms_dev --dbuser=root --dbpass=password
# Activate development plugins
wp plugin activate query-monitor
wp plugin activate debug-bar
Testing
# Run unit tests
vendor/bin/phpunit
# Run integration tests
vendor/bin/phpunit --configuration phpunit-integration.xml
# Code quality checks
vendor/bin/phpcs --standard=WordPress src/
vendor/bin/phpstan analyse src/
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Documentation
User Manuals
- Administrator Manual - Complete guide for school administrators
- Teacher Manual - Guide for teachers using the system
- Parent Manual - Guide for parents accessing the portal
Technical Documentation
- Technical Documentation - Complete technical reference
- API Documentation - REST API reference
- Database Schema - Database structure and relationships
Additional Resources
- Installation Guide - Detailed installation instructions
- Configuration Guide - System configuration reference
- Troubleshooting Guide - Common issues and solutions
Security
Security Features
- Input Sanitization: All user inputs sanitized using WordPress functions
- SQL Injection Prevention: Prepared statements for all database queries
- XSS Prevention: Output escaping for all displayed content
- CSRF Protection: WordPress nonces for all form submissions
- Role-based Access Control: Granular permissions for different user types
Payment Security
- Credential Encryption: API keys encrypted using WordPress functions
- Callback Validation: Gateway-specific signature verification
- Transaction Logging: Comprehensive audit trail for all transactions
- PCI Compliance: No sensitive payment data stored locally
Performance
Optimization Features
- Database Indexing: Optimized indexes for frequently queried fields
- Query Optimization: Efficient WordPress queries with proper caching
- Object Caching: WordPress object cache for frequently accessed data
- Image Optimization: Compressed images and lazy loading
- Minification: CSS and JavaScript minification
Performance Targets
- Page Load Time: < 3 seconds for standard operations
- Database Queries: < 50 queries per page load
- Memory Usage: < 256MB per request
- API Response Time: < 2 seconds
Troubleshooting
Common Issues
Plugin Activation Errors
Error: The plugin does not have a valid header.
Solution: Ensure the main plugin file has proper WordPress headers.
Payment Gateway Issues
M-Pesa: Invalid credentials
Solution: Verify API credentials and environment settings in SMS Settings.
SMS Delivery Problems
Africastalking: Insufficient balance
Solution: Check SMS credit balance and top up if necessary.
Debug Mode
Enable WordPress debug mode for troubleshooting:
// wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
License
This project is licensed under the GPL v2 or later - see the LICENSE file for details.
Acknowledgments
- WordPress Community: For the excellent platform and ecosystem
- Africastalking: For reliable SMS API services
- Safaricom: For M-Pesa payment gateway integration
- Contributors: All developers who have contributed to this project
Roadmap
Version 2.0 (Planned)
- [ ] Mobile application for iOS and Android
- [ ] Advanced reporting with data visualization
- [ ] Integration with learning management systems
- [ ] Multi-school support for school chains
- [ ] Advanced analytics and AI insights
Version 1.5 (In Development)
- [ ] Examination management system
- [ ] Library management integration
- [ ] Hostel management features
- [ ] Advanced parent-teacher communication tools
- [ ] Inventory management system
Statistics
- Lines of Code: 50,000+
- Test Coverage: 85%+
- Supported Languages: English (more coming soon)
- Active Installations: 100+ schools
- Countries: Kenya, Uganda, Tanzania
Features in Detail
Student Management
- Comprehensive student profiles with photos
- Admission number auto-generation
- Parent account auto-creation
- Medical information tracking
- Emergency contact management
- Academic history tracking
- Bulk import/export capabilities
Financial Management
- Multiple fee types and categories
- Installment payment options
- Automatic penalty calculations
- Multi-currency support (planned)
- Payment reminders and notifications
- Comprehensive financial reporting
- Integration with accounting systems (planned)
Communication System
- Bulk SMS with delivery reports
- Email notifications
- In-app messaging
- Notice board with file attachments
- Automated notifications
- Message templates
- Multi-language support (planned)
Academic Management
- Flexible class structures
- Subject and teacher assignments
- Timetable conflict detection
- Attendance tracking with analytics
- Grade management
- Progress reports
- Academic calendar integration