A PHP/MySQL school-management platform in production for ~1,000 students — role-partitioned apps, a companion mobile API, and an academic-year model designed for real Indian school operations.
PHP ≥ 7.4 · MySQL / MariaDB (mysqli) · vanilla JS + CSS · Composer (PhpSpreadsheet) · shared hosting or on-prem
Role-partitioned apps: admin/, teachers/, student/, a JSON API in backend/api/, a standalone reception/ front desk, and a jobs/ recruitment micro-portal
Roles: admin, headmaster, coordinator, teacher, student · a per-user granular permissions layer for headmaster and coordinator
Installable PWA — offline page, service worker, per-role app shortcuts · companion mobile / webview API
Each portal is its own app shell. Headmaster and coordinator access is shaped by an admin_permissions layer, so a school grants exactly the screens it wants.
Full platform control — structure, users, exams config, fees, approvals, reports, rollover.
A permissioned admin view — sees and approves within the scopes granted to the role.
Section- or department-scoped oversight of academics, attendance and staff.
Marks entry, attendance, homework, notices (with approval), class timetable, “my” views.
Timetable, marks, report cards, fees & dues, homework submission, notices, resources.
Reception: visitor log, admission enquiries, gate attendance with override control.
The rollover clones the class / section / subject structure, promotes students, and freezes the prior year so historical marks, fees and report cards stay intact and isolated. It's the platform feature most competitors treat as an afterthought.
A JSON API in backend/api/ already serves the data a native client needs — the parent / student / teacher apps are a client build over this, not a backend rewrite.
Installs to the home screen with an offline page, a service worker and per-role app shortcuts. Multi-language scaffolding is in place, and there's a debug / log viewer plus DB audit and patch scripts for operations.
Name, email, position, number of students — that's it. We build your per-student quote on the spot and pick it up with you on WhatsApp.