What is a learning management system and what does it have to do?
A learning management system (LMS) is software that publishes courses, enrolls learners, delivers lessons and assessments, and records who completed what. Students, instructors and administrators each use a different part of it. The difference between a content library and an LMS is the record: which learner is on which course, how far they are, and whether they paid.
- A learning management system needs three roles on one codebase: student, instructor and administrator, each with its own dashboard and permission set.
- Modeling every course as a scheduled cohort with an intake date and duration drives live-class scheduling, content release and certificate timing.
- Live-class integration means the LMS creates the video meeting through an API and publishes the join link inside the course, so nobody pastes links by hand.
- Payment integration should change enrollment status automatically when the gateway confirms a payment, not after staff reconcile a spreadsheet.
- SCORM and xAPI matter only if the platform must import third-party course packages or export learning records; a single institution often needs neither at launch.
- Typical custom LMS development runs from about $40k for a single-institution MVP to $350k or more for a multi-tenant platform, as planning estimates.
What has to be right before you build an LMS?
The fastest way to work out how to build a learning management system is to write down what breaks without one. Alpha Academy, a language school in Bulawayo, Zimbabwe, came to Sigi Technologies running online teaching on WhatsApp groups, hand-shared Zoom links and offline payment records. Sigi built the school a custom learning management system in Laravel 10, delivered end to end. Those failures are what any LMS has to fix.
- Course communication had no structure. Announcements, homework and questions were mixed in one chat and impossible to search later.
- Live classes had no system behind them. Zoom links were shared manually before each session, which meant missed links, wrong time zones and no attendance record.
- Enrollment and money were disconnected. Staff reconciled who had paid, who was enrolled and who had finished a module by hand.
- The operators were not technical. The platform had to stay easy to use for staff who were not highly technical, which shaped the interface as much as the architecture.
If the platform must serve many schools rather than one institution, add role scoping by school and region, enforced on the server, as Sigi did on the Government of Jamaica school meal management system.
What features does a learning management system need at launch?
LMS features are best listed by role, because each role needs a different screen on the same records. These lists are what shipped on Alpha Academy.
Student portal
- A public catalog showing each cohort’s intake date, duration, price and current enrollment count, with online sign-up.
- Checkout at enrollment; a confirmed payment enrolls the student automatically and sends a confirmation email.
- Weekly content release, so lesson materials unlock one week at a time before the live session.
- One-click access to the live class from inside the course, plus recordings for anyone who missed it.
- Quizzes per module and a progress view that tracks milestones toward the exam date.
- Automatic certificate generation on completion, stored against the student’s record.
Instructor dashboard
- A course and module builder for uploading lesson content, setting release dates and attaching quizzes.
- Live-class scheduling that creates the meeting through the video API and publishes the join link to enrolled students.
- Attendance tracking per session, and per-student progress and quiz results ahead of the exam.
Admin panel
- Enrollment management with status changes driven by payment confirmations.
- Payment records reconciled to students and cohorts, replacing the offline ledger.
- Reporting across courses, revenue, attendance and completions.
- Email notifications for enrollment, payment, class reminders and certificate issuance, sent from the platform rather than from staff phones.
Notice what is not on the list: gamification, forums, AI recommendations, mobile apps. Most guides on how to build an LMS call them must-haves. None of them changes whether a school can run its courses. Add them once enroll, pay, learn, attend and complete work without staff intervention.
How should you model courses, cohorts and roles?
The data model decides most of the build. A course is either a static catalog entry anyone can start at any time, or a scheduled cohort with an intake date, a duration and learners who move together. Self-paced products like Teachable use the first. Schools that teach live need the second, and forcing them onto the first is where off-the-shelf tools start to hurt.
Roles come next. Three roles on one codebase, each with its own dashboard and permission set, was enough for one institution. Enforce permissions at the request level, so an instructor endpoint refuses a student token whatever the interface hides. If several institutions may use the platform later, add a tenant field now.
How do you integrate live classes with Zoom?
Zoom LMS integration has one goal: the platform creates the meeting, not the instructor. For an institution that owns its Zoom account, Zoom’s Server-to-Server OAuth app type lets the backend request an access token with the account_credentials grant and no user login; Zoom documents the token as valid for one hour. The backend then calls the Meetings API to create a meeting per class and stores the meeting id, the instructor’s start URL and the students’ join URL against the cohort session.
On Alpha Academy, the Zoom API integration creates the meeting for each scheduled class and publishes the join link to enrolled students inside the course, so instructors never paste links by hand. Scheduling runs with attendance tracking, and recordings are available for anyone who missed the session. Three rules follow: never show the start URL to students, create meetings from a queued job so a slow API call does not block the instructor, and store the time zone on the cohort.
How does progress tracking work, and do you need SCORM or xAPI?
Progress tracking is a record per learner per unit: lesson opened, quiz attempted, quiz passed, session attended, module completed. Store each event with a timestamp and roll them up into the progress view. Certificates and reports read the rollup, so a rule change does not require reprocessing history.
Those events are worth more than a progress bar. A 2025 study in Scientific Reports by Marcolino and colleagues trained a CatBoost model on Moodle log data from 567 student-course instances across 23 courses and reached an F1-score of 0.86 for identifying at-risk students by week seven. The most predictive features were simple: average days with activity and the longest run of consecutive days without access. An LMS that stores daily access events can flag a learner who has gone quiet before the instructor notices. A 2022 paper in Online Learning by Maloney and colleagues adds a caution: Moodle and Vimeo reported different engagement figures for the same videos, so treat any single metric as a signal, not a verdict.
When SCORM, xAPI or cmi5 matter
The Sharable Content Object Reference Model (SCORM), published by the Advanced Distributed Learning (ADL) Initiative, defines how a packaged course reports completion and score to a host LMS at run time. The Experience API (xAPI), also stewarded by ADL, records learning as actor, verb and object statements in a Learning Record Store, the server that receives, stores and serves those records. cmi5 is the ADL and AICC profile that uses xAPI with a traditional LMS launch model.
You need SCORM or cmi5 if customers will upload courses authored elsewhere, and xAPI if learning records must flow to an external store. A single institution teaching its own content, as Alpha Academy does, needs neither at launch. Two standards apply at any scale. The Web Content Accessibility Guidelines (WCAG) 2.2 from the World Wide Web Consortium set perceivable, operable, understandable and robust criteria at levels A, AA and AAA; public institutions are commonly held to AA. If the LMS must embed or be embedded by other tools, Learning Tools Interoperability (LTI) 1.3 from 1EdTech defines the handshake with OpenID Connect, signed JSON Web Tokens and OAuth 2.0.
How do you take payments in a local market?
Payments are where e-learning platform development stops being generic. Card-only checkout excludes learners where mobile money is the norm. Alpha Academy required Paynow Zimbabwe, the local gateway for mobile money, bank and card payments, so students could pay in local and international currencies without an offline step. The Paynow PHP SDK shows the shape: the backend creates a payment with a reference and line items, sends it, and receives a redirect link for the learner plus a poll URL to store. Paynow posts the outcome to a result URL on your server, and the backend confirms by polling the transaction until it reports paid. EcoCash and OneMoney run as express checkout with on-phone instructions.
On Alpha Academy, a confirmed payment enrolls the student and changes enrollment status automatically, and payment records are reconciled to students and cohorts in the admin panel. The pattern generalizes: model enrollment as a state machine with pending, enrolled, completed and canceled states, let only a verified gateway callback move it to enrolled, and make the handler idempotent so a repeated notification cannot enroll twice.
Custom LMS vs off-the-shelf: Moodle, Canvas or Teachable?
Custom LMS vs off-the-shelf is the first question to settle, and the honest answer is that many institutions should start with a product. Moodle is free, open-source software under the GNU General Public License, self-hosted or on MoodleCloud, with a large plugin marketplace. Canvas LMS from Instructure is open source under AGPLv3 and can be self-hosted. Teachable is a hosted creator platform priced from $39 per month, with a 7.5% transaction fee on its Starter plan at the time of writing.
Choose a product when your courses are self-paced, your payment gateway is already supported, and you can accept the vendor’s data model. Choose custom LMS development when the workflow is the business: live cohorts on a timetable, a local gateway the products do not support, enrollment rules tied to payment, or reporting that must match how the institution runs. A hybrid is also legitimate: Moodle as the course engine behind a custom enrollment and payment layer.
How much does LMS development cost?
LMS development cost follows scope: how many roles launch together, how many integrations must be production-grade on day one, and whether standards support or multi-tenancy is required. Sigi does not publish client invoices and does not attach a figure to Alpha Academy. The ranges below are typical-scope planning estimates, consistent with the bands in Sigi’s guide to how much it costs to build a mobile app.
$40k to $80k
Tier 1: single-institution LMS MVP. Catalog and sign-up, cohort model, weekly content release, quizzes, one payment gateway, one live-class integration, a basic admin view.
Source: Typical-scope planning estimate, not a client invoice
$80k to $180k
Tier 2: production platform with three roles. Adds attendance, recordings, certificates, automated enrollment from payment callbacks, notifications, reconciled payment records and reporting.
Source: Typical-scope planning estimate, not a client invoice
$150k to $350k+
Tier 3: multi-tenant or standards-driven platform. Tier 2 plus tenant isolation, SCORM or cmi5 import, xAPI export, single sign-on, LTI 1.3, a WCAG 2.2 AA audit or mobile apps.
Source: Typical-scope planning estimate, not a client invoice
On timeline, guides ranking for this query commonly cite four to six months for an MVP and longer for enterprise scope. Treat those as market figures, not a Sigi commitment; Sigi quotes from a written brief. What moves the price most is the integration count: each gateway or video provider adds an authentication flow, a callback handler and a failure path to test.
How to build a learning management system step by step
Here is the build order Sigi follows for a custom LMS. Each step fixes decisions the next depends on.
- Discovery by role. Write the student, instructor and administrator journeys, and list what breaks today.
- Decide the course model: cohort or self-paced. Scheduling, content release and certificates all hang off this.
- Define roles and permissions, enforced on the server. Add a tenant field now if more than one institution will ever use it.
- Build the catalog, enrollment and content release. Enrollment is a state machine with explicit states from the first commit.
- Integrate payments. Verified gateway callbacks move enrollment to paid, the handler is idempotent, and records reconcile to cohorts.
- Integrate live classes. The platform creates meetings from a queued job, stores join and start URLs, and records attendance.
- Add assessments, progress tracking and certificates, reading from stored events so rules can change later.
- Build the admin panel as an internal tool: enrollment management, payment records, reporting, notifications.
- Test the unhappy paths: a duplicate payment callback, a meeting that fails to create, a late payment.
- Hand over with training. Refine the flows until non-technical staff can run the platform without calling the developer.
On Alpha Academy, the last step was in the brief. The client was explicit that he was not a technical buyer, so Sigi kept every decision understandable and refined the Zoom and Paynow flows until they worked to the school’s satisfaction. That is standard for Sigi’s custom software development engagements with small institutions: the aim is a system the client can operate, not one they have to call about every week.
Related reading
For the full build, read the Alpha Academy learning platform case study. If your LMS will sell courses from many instructors, the tenancy and payout patterns in how to build a multi-vendor marketplace apply. For pricing method, see how much it costs to build a mobile app. If you are considering an AI tutor inside the platform, how to build an AI chatbot covers retrieval and guardrails. For role scoping across many schools, see the Government of Jamaica school meal system case study. Sigi’s education software practice and custom software development service cover the wider capability, or contact Sigi with a brief.

