SchoolKit by Skhooler
A simple, modular micro-framework for building school applications
SchoolKit provides a clean, simple API for database operations, mail handling, file management, and more.
// Installation via Composer
composer require skhooler/schoolkit
// Quick Start
require_once 'schoolkit.php';
$config = [
'db' => [
'dsn' => 'mysql:host=localhost;dbname=schoolkit',
'user' => 'your_username',
'pass' => 'your_password'
]
];
$schoolkit = SchoolKit::start($config);
// Ready to use immediately!
$auth = $schoolkit->auth();
$directory = $schoolkit->directory();
Requirements
SchoolKit has minimal requirements to get you up and running quickly.
PHP Environment
- PHP 8.2 or higher
- ext-pdo (PDO extension)
- ext-json (JSON extension)
- ext-mbstring (Multibyte String extension)
Database
- MySQL 5.7+ or MariaDB 10.3+
- Note: PostgreSQL and SQLite are not supported
- Database with appropriate privileges for CREATE, ALTER, DROP operations
Optional Tools
- Composer (for dependency management)
- Node.js & npm (for frontend assets)
- Git (for version control)
- Web server (Apache/Nginx) or PHP built-in server
Installation
Get started with SchoolKit in minutes, not hours.
Via Composer
Perfect for integrating SchoolKit into existing PHP projects or when you want full control over your setup.
Direct Download
Download the single file and include it directly. Great for quick prototyping or simple setups.
Quick Start Examples
See how simple it is to build common school application features.
🏫 Student Directory
// Initialize SchoolKit
$schoolkit = SchoolKit::start($config);
// Get student directory
$directory = $schoolkit->directory();
$students = $directory->students()->active();
// Search and filter
$results = $students->search('John')
->grade(10)
->get();
✉️ Send Messages
// Get messaging module
$messaging = $schoolkit->messaging();
// Send to class parents
$messaging->toParentsOf('Grade 5A')
->subject('Field Trip Tomorrow')
->message('Don\'t forget lunch and water!')
->send();
// Auto-translated to parent languages
📅 Parent-Teacher Conferences
// Set up teacher availability
$conferences = $schoolkit->conferences();
$conferences->teacher('Ms. Smith')
->availability([
'2024-03-15' => ['09:00', '10:00', '11:00'],
'2024-03-16' => ['14:00', '15:00']
])
->openBooking();
🏃♀️ Activity Signups
// Create activity with limits
$activities = $schoolkit->activities();
$football = $activities->create([
'name' => 'Football Club',
'capacity' => 20,
'grades' => [6, 7, 8],
'signup_deadline' => '2024-03-20'
]);
// Students can signup automatically
Core Features
Everything you need to build comprehensive school applications.
Student & Staff Management
- Student enrollment and profiles
- Staff directory and roles
- Class and grade management
- Emergency contact system
Communication System
- Multi-language messaging
- Class-wide notifications
- Email and SMS delivery
- Message templates and scheduling
Scheduling & Events
- Parent-teacher conferences
- School events and calendar
- Room and resource booking
- Automated reminders
Activities & Programs
- Activity signup management
- Sports and club organization
- Capacity and waitlist handling
- Program fee collection
Document Management
- FERPA-compliant file sharing
- Permission-based access
- Document templates
- Version control and audit trails
Security & Compliance
- GDPR and FERPA compliance
- Role-based permissions
- Data encryption at rest
- Audit logging and monitoring
Ready to Build Something Amazing?
Join the community of developers building the future of education technology.