From a WhatsApp group to a real platform.
oQuran Academy was managing student enrolments, teacher schedules and fee collection across messages and spreadsheets. The platform replaced all of it with one system that runs itself.
Overview
oQuran Academy teaches Quran classes online, largely to families living overseas. Demand was there; the operations weren't. Enrolments arrived by message, class times were negotiated one by one, and fees were tracked manually.
The goal was a platform where a parent could find a course, pick a time, pay, and be enrolled — with no one on the academy's side having to do anything by hand.
The challenge
- Scheduling across time zones — students in the UK, Gulf and North America booking teachers in Pakistan.
- Three completely different user types needed three completely different interfaces, sharing one database.
- Payments had to be reliable and clearly receipted, because the customers are parents paying monthly for their children.
- Teachers had to be able to manage their own availability without the admin becoming a bottleneck.
What I built
- Course booking flow — students browse courses, view available slots and enrol directly, with confirmation handled automatically.
- Class scheduling system — teachers set their own availability; the system prevents clashes and double-bookings.
- Integrated payment processing — secure online payment at the point of enrolment, with records tied to each student.
- User registration and roles — separate dashboards and permissions for students, teachers and administrators.
- Admin oversight — a management view covering enrolments, schedules and payment status.
Technical approach
The scheduling model was the hard part. Availability is stored as structured time blocks per teacher rather than as free text, which makes clash detection a database constraint instead of an application guess. Bookings validate against that model before they're ever written.
Access control is enforced server-side on every request, not hidden in the interface. A student who guesses an admin URL gets rejected at the query level — which matters on a platform where the users are children and their parents.
Still evolving
This has been a long-running relationship rather than a one-off build. The platform has been live since May 2022 and continues to get new features and refinements as the academy grows — which is the strongest signal I can point to that the original architecture held up.
Next project: Power Pack Pakistan
A WooCommerce storefront for a battery retailer moving online.