Skip to main content

Welcome to School Management Platform

The School Management Platform is a full-featured web application built with PHP and MySQL that streamlines academic administration. It provides role-based access for administrators, teachers, and students to manage all aspects of school operations.

Installation

Get up and running with XAMPP and database setup

Quick start

First login and dashboard tour for all user roles

Admin guide

Manage students, teachers, courses, and timetables

Teacher guide

View courses, enter grades, and check your schedule

User roles

The platform supports three distinct user roles, each with specific capabilities:

Admin

Administrators have full control over the school management system:
  • Student management - Create, view, and delete student accounts
  • Teacher management - Add and manage teaching staff
  • Subject management - Define subjects available in the curriculum
  • Course creation - Assign teachers to subjects to create courses
  • Enrollment management - Enroll students in courses
  • Timetable creation - Schedule classes and manage school timetables
  • Bulletin access - View student academic bulletins and performance

Teacher

Teachers can manage their courses and student grades:
  • Course viewing - Access all assigned courses
  • Grade management - Enter and update student grades for their courses
  • Timetable access - View personal teaching schedule
  • Student roster - See enrolled students in each course

Student

Students have read-only access to their academic information:
  • Timetable viewing - Check personal class schedule
  • Grade consultation - View grades for all enrolled courses
  • Average calculation - See overall academic performance
  • Bulletin access - Download or view academic bulletin

Key features

Secure authentication

The platform implements robust security measures:
// Passwords are hashed using PHP's password_hash()
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// SQL injection prevention using PDO prepared statements
$stmt = $this->db->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
Session-based authentication includes automatic timeout after 30 minutes of inactivity to protect user accounts.

Role-based access control

Each route is protected with role verification:
// Only admins can access admin dashboard
Auth::admin();

// Teachers can only access teacher features
Auth::teacher();

// Students have restricted access
Auth::student();

MVC architecture

The application follows the Model-View-Controller pattern for clean separation of concerns:
  • Models - Database interactions and business logic (app/models/)
  • Views - HTML templates with Bootstrap styling (app/views/)
  • Controllers - Request handling and routing (app/controllers/)

Database structure

The MySQL database includes these main tables:
  • users - User authentication and role information
  • students - Student-specific data
  • teachers - Teacher profiles
  • subjects - Available subjects in curriculum
  • courses - Teacher-subject assignments
  • enrollments - Student course registrations
  • grades - Student performance records
  • timetable - Class scheduling information

Technology stack

  • PHP - Server-side scripting and business logic
  • MySQL - Relational database management
  • PDO - Database abstraction layer with prepared statements
  • Bootstrap - Responsive UI framework
  • XAMPP - Local development environment (Apache + MySQL + PHP)
  • MVC Pattern - Architectural design pattern

Getting started

Ready to begin? Follow our installation guide to set up your local environment, or jump to the quickstart to see the platform in action.
This platform is designed for educational purposes. For production use, additional security hardening and HTTPS configuration is recommended.

Build docs developers (and LLMs) love