A school and a tuition centre are not the same shape.
Campus runs either — or both at once. Admissions, attendance, fees, exams and payroll on one database, with a portal each for the office, the teacher, the student and the parent.
PHP 8 and MySQL on ordinary shared hosting. No build step, no monthly per-student licence.
The register opens with everyone present and the teacher marks the exceptions. On a normal day that is two taps, not forty — which is the difference between a register that gets filled in and one that does not.
Who sees what
Four portals off one database. Nobody is shown a screen that is not theirs, and a parent sees their own child and no one else’s.
What it does
Admissions and people
One person record, with roles on top of it — so a teacher whose own child studies there is one person, not two. Guardians link to students, and a staff member who later teaches is not re-typed.
Classes and batches
A school class with sections where a student takes every subject, or an evening batch that starts any time and charges per subject. Both are the same enrolment record underneath, which is why one system runs both without becoming two.
Attendance
Whole-day for a class, per-subject for a batch, so a student who comes to maths and skips physics is recordable. Late counts as attending; approved leave is excluded rather than held against anyone. Re-opening a day edits it instead of adding a second register.
Fees
Fee heads, plans, discounts and scholarships; invoices generated for a whole group in one pass; part payments; a defaulters list that is a working list rather than a report. Expenses recorded against the same ledger, so the month’s position is one figure.
Exams and report cards
Assessments carry a weight, so a mid-term worth 70 and a test worth 30 come out right. A term with only one assessment entered still reports a sensible figure instead of dividing by a total that is not there yet. Printable report cards on your grade scale.
Staff leave and payroll
Leave applied for, approved and reflected in the register. Monthly payroll runs with allowances and deductions, approved before they are paid, and posted to the same expense ledger as everything else.
The decisions behind it
The parts that took the thinking, written down.
One enrolment unit, not two systems
Schools and tuition centres differ structurally, and the usual answer is two products. Here a group is generic: marked as a class it behaves like a class-section with whole-school fees; marked as a batch it takes per-subject enrolment and per-subject fees. One codebase, one upgrade path, and an academy that does both is not running two databases.
The register defaults to present
A paper register is used by marking who is missing. Software that makes a teacher tap forty times to record a normal day is software that gets abandoned by week three, and then the attendance data is worthless. Submitting an untouched register marks the class present, which is the common case and one tap.
Urdu is not an afterthought
Names, remarks and report card comments are stored and printed in Urdu. The installer proves it before it finishes, by writing an Urdu string to the database and reading it back — a character-set mistake is the kind of thing found months later on a printed document.
Installed in one form
Open one page, fill it in, press install. It checks the server, tests the database before touching it, writes its own configuration, builds the tables, makes you the administrator, closes the sample logins, proves the result and then deletes itself. No file editing, and no default password left open behind you.
Have a look
Open it, or tell us how your school runs and we will tell you honestly whether this fits.