Madarek — مدارك Learning Management System
A comprehensive full-stack Learning Management System for Alemtayaz in Oman — connecting students with instructors through course uploads, exams, and integrated payments. Features a Filament-powered admin dashboard, teacher portal for course and student management, student web interface, and a Flutter mobile app on Google Play for on-the-go learning access.



Project Overview
Madarek (مدارك) is a full-stack Learning Management System built for Alemtayaz in the Sultanate of Oman. The platform connects students with instructors in a structured digital learning environment — enabling course creation and management, student enrollment, online examinations, and integrated payment processing for course access.
The backend is built on Laravel and PHP, with Filament powering the admin panel — providing a clean, modern interface for the platform administrator to manage all users (students and teachers), courses, categories, payment records, and system configuration from a single dashboard.
Beyond the web platform, Madarek ships with a Flutter mobile app on Google Play — allowing students to access enrolled courses, complete exams, track progress, and continue learning from anywhere on their Android device. The app connects to the same Laravel REST API backend, ensuring data consistency between web and mobile experiences.
App Screenshots




System Components
The platform admin has full control through a Filament-powered dashboard — managing all teacher and student accounts, approving course submissions, overseeing payment transactions, configuring platform settings, managing course categories, and generating reports on usage, revenue, and enrollment trends.
Instructors build and publish courses — upload video lessons, PDFs, and materials, organize content into sections and modules, create exams with question banks and grading rules, set course pricing, and track enrolled student progress and performance. The teacher portal gives instructors complete ownership of their course content and student experience.
Students browse the course catalog, view detailed course descriptions and instructor profiles, enroll after payment, and access their learning dashboard with all enrolled courses. Within each course, students watch video lessons, download materials, complete assignments, and sit online exams with automatic grading. Progress tracking shows completion percentage, exam scores, and certificate eligibility.
Courses can be priced by instructors and require payment for student enrollment. The payment system handles secure checkout, processes the transaction through an integrated payment gateway, and automatically unlocks full course access upon successful payment. All payment records are logged in the admin dashboard with full transaction history, student-to-course mapping, and financial reporting.
The course upload system is the core content engine of Madarek LMS. Instructors create a course with title, description, category, thumbnail, and price — then build it out section by section, uploading video lessons, PDFs, and supplementary materials for each section. An integrated exam builder allows instructors to attach graded assessments to any section, with support for multiple-choice, true/false, and short-answer question formats. The system also supports free preview lessons, course prerequisites, and certificate generation upon completion.
The Flutter mobile app extends the full LMS experience to Android — students browse the course catalog, enroll and pay for courses, access all enrolled course content (video lessons, materials), take online exams, track learning progress, and receive push notifications for new content, exam reminders, and announcements. The app communicates with the Laravel backend through a secure REST API, ensuring real-time data sync across web and mobile. Firebase push notifications keep students engaged throughout their learning journey.
Key Features
Outcomes
Technical Challenges
Madarek's architecture requires a single Laravel REST API to serve both the web interface and the Flutter mobile app simultaneously. All business logic — enrollment validation, payment processing, progress tracking, exam grading — must be implemented at the API level rather than in web-specific controllers. API responses must handle the needs of both clients while keeping authentication secure (Sanctum/JWT) and responses performant under concurrent load from both web and mobile users.
An LMS built on video lessons requires efficient video upload, storage, and delivery. Instructors upload video files of varying sizes through the teacher portal, which must be processed, stored securely, and delivered with acceptable streaming performance on both desktop browsers and the Flutter mobile app. The solution involves CDN-backed storage, chunked upload support for large video files, and access-controlled delivery to prevent unenrolled students from accessing paid course content.
Deploying an LMS in Oman requires full localization for the Arabic-speaking market — RTL interface support across both web and Flutter, Arabic content management (course titles, descriptions, exam questions in Arabic), and integration with payment gateways supporting the Omani Rial (OMR) and common GCC payment methods. Both the Filament admin dashboard and the teacher portal need to handle bidirectional content (instructors writing in Arabic, students reading in Arabic) without layout or data integrity issues.
