The Challenge
The school wanted to deliver lessons, assignments and exams online, organised the way it already teaches: by grade, section and semester. Content had to be structured, easy for students to follow, and available only to those who had paid for it.
Staff also needed one place to manage students, teachers and year-group intakes, rather than handling each cohort and each subscription by hand.
Our Solution
We built a learning management system on Laravel 12 and Filament 4. Content follows a clear hierarchy of tracks, subjects, courses, units, lessons and materials, including video, and the platform records each student's lesson progress. Teachers publish assignments that students submit online, and build exams with several question types: true/false, matching and essay, with an option to show results as soon as the student submits.
Access is paid. Students top up a balance with prepaid cards that carry redeemable codes, then subscribe to courses or plans from that balance. Specific students can be given an unlimited-access flag. Roles for students, teachers and admins are permission-based, and admins can bring in whole classes from Excel files.
- Academic structure: grades, sections, semesters and cohorts for separate year-group intakes.
- Device control: each account is bound to a device, with admin reset and a "log out all devices" action.
- Admin panel: online-users widget, blog, pages, and settings for push notifications, SEO, social links and app download links.
- Delivery: a landing page with two portals, a REST API v1 for app clients, and Firebase push notifications with S3-compatible file storage.
The Results
- Structured learning: content runs from tracks down to individual lessons and materials, with progress tracked per student.
- Assessment online: assignments with submissions and exams with true/false, matching and essay questions.
- Paid access built in: prepaid card codes, balances and course or plan subscriptions replace manual handling.
- Safer accounts: device binding and one-click logout of all devices help limit account sharing.
- Arabic and English with RTL: web and admin work fully in both languages, and the API serves app clients.