🚀 Open Source • MIT License

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.

⚠️ MySQL/MariaDB ONLY - This library is specifically designed for MySQL/MariaDB databases and does not support PostgreSQL or SQLite.
SchoolKit Application
// 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

# Install via Composer
composer require skhooler/schoolkit

Perfect for integrating SchoolKit into existing PHP projects or when you want full control over your setup.

🌐

Direct Download

# Download and include
require_once 'schoolkit.php';

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.

📖

Read the Docs

Comprehensive guides, API reference, and tutorials to get you started.

View Documentation
💻

Clone & Contribute

SchoolKit is open source. Fork it, improve it, make it yours.

GitHub Repository
🤝

Schedule Call

Discuss your school's technical needs with our founder.

Schedule Call