Skip to content
Amer Khorsheed
All work

Case 07Operations · Scheduling

Every classroom on campus, live.نظام إدارة ومراقبة القاعات

Year
2026
Status
Complete
Discipline
Operations · Scheduling
SPU Rooms live status of every hall
16
reports
7
roles
~45
permissions

01 — The problem

Nobody could answer “which halls are free right now?” without phone calls. Schedules clashed, maintenance was invisible, and every faculty kept its own spreadsheet.

A classroom and hall management system for Syrian Private University: live occupancy per room, conflict-safe scheduling, a bulk room-naming engine, smart search and sixteen exportable reports.

02 — What I built

  1. 01

    An availability engine that always derives state — available, occupied, maintenance, disabled — from schedules, maintenance periods and operational status.

  2. 02

    Race-safe session creation with room and instructor conflict detection, explained in Arabic.

  3. 03

    A naming engine that generates AI-01 … AI-20 (any prefix, padding, step or exclusions) in one atomic transaction.

  4. 04

    16 reports with Arabic-embedded PDF, Excel, CSV and print exports; validated CSV/XLSX imports with preview before commit.

03 — Architecture

How the pieces fit.

  1. L1Interface
    • Blade + Tailwind 4
    • Alpine.js
    • Arabic-first RTL
  2. L2Domain
    • Availability engine
    • Conflict detection
    • Recurrence rules
  3. L3Platform
    • Laravel 12 · PHP 8.2+
    • MySQL 8
    • Audit log

Requests flow top to bottom · each layer depends only on the one beneath

04 — Decisions that matter

Decisions

D01

Derived, never stored

Room status is computed from facts, so it can never drift out of sync with the schedule.

D02

Faculty isolation in the backend

Seven roles and ~45 permissions, with faculty scoping enforced server-side rather than hidden in the UI.

05 — Security & trust

  • RBAC: 7 roles, ~45 granular permissions.
  • Backend-enforced faculty data isolation.
  • Audit log with user, old/new values and IP.

06 — Stack

  • Laravel 12
  • PHP
  • MySQL 8
  • Blade
  • Tailwind CSS 4
  • Alpine.js

07 — In the product

SPU Rooms schedules table
Schedules with conflict-safe creation.
SPU Rooms report catalogue
Sixteen reports, four export formats.
SPU Rooms dashboard
Per-faculty occupancy at a glance.

Next case · 08

Qbanker

Exams grounded in the faculty’s own rules.