Skip to main content
Web Applications Β· EdTech

SCORM and xAPI Learning Management System

A learning management system that plays SCORM and xAPI content, runs cohort-based programmes with deadlines, issues verifiable certificates and reports progress to managers.

SCORM and xAPI Learning Management System cover

Project overview

We built a learning management system for a training provider that sells certification programmes to companies and runs compliance training on their behalf. Learners take courses in the browser, instructors run cohorts with live sessions and assessments, and client HR teams see completion for their staff.

The work covered discovery, UX, a Laravel back end, a Vue front end, a MySQL data model, content migration and roll-out. It builds on our education app development experience and connects to our e-learning software project.

The client and the challenge

The provider owned a large library of SCORM packages authored in different tools over many years, but its previous hosted LMS tracked them inconsistently, lost progress when learners switched devices and could not run cohorts with fixed start dates. Certificates were made by hand and were easy to forge. Client HR teams asked for completion reports by email, and staff built them by exporting data and merging spreadsheets, which meant compliance deadlines were often checked only after they had passed.

They needed reliable playback of existing SCORM courses, support for newer xAPI content, per-client cohorts and reporting, and certificates that an employer could verify β€” without asking authors to rebuild their catalogue.

Solution architecture & delivery

Uploaded SCORM packages are unpacked into object storage and their manifest parsed to build the course structure. The Vue player launches each unit in a frame and exposes the SCORM runtime API; every call that sets progress, score or suspend data is buffered in the browser and committed to Laravel in small batches, so a dropped connection does not lose a learner's place and resuming on another device picks up the same state.

For xAPI content we added a learning record store endpoint inside the platform. Statements are validated, stored in MySQL against the learner and activity, and mapped to completion rules defined per course, such as passing a final quiz or viewing all modules. This lets modern content report detailed interactions while older SCORM packages still produce consistent completion data. Programmes can mix xAPI and SCORM modules, and the course outline shows learners a single progress view regardless of the format behind each module.

Programmes are organised into cohorts per client with start dates, unlock schedules, live session links and assessment deadlines. Instructors grade assignments with rubrics and see who is falling behind, and reminders go out by email and SMS through a queue. Client HR admins only see their own organisation's learners, enforced by tenant scoping on every query.

Certificates are generated as PDFs when completion rules are met, each with a unique code and a public verification page that shows the holder, programme and issue date, and whether it has been revoked. Reports and CSV exports come from summary tables refreshed by scheduled jobs so large cohorts do not slow down learner pages.

Key features we built

  • SCORM playback with batched, resumable progress tracking across devices
  • Built-in xAPI endpoint with configurable completion rules
  • Cohorts with start dates, content unlock schedules and deadlines
  • Rubric-based assignment grading and at-risk learner views for instructors
  • Verifiable certificates with unique codes and revocation
  • Client organisation workspaces with scoped HR reporting
  • Email and SMS reminders for deadlines and live sessions
  • Analytics dashboards and CSV and PDF exports

How we delivered it

  1. Discovery. Auditing a sample of the SCORM catalogue across authoring tools, and mapping cohort, grading and reporting needs with instructors and client admins.
  2. Player spike. An early technical spike proving SCORM runtime behaviour and resume logic on the most problematic legacy packages.
  3. Build. Two-week sprints on the player, xAPI endpoint, cohorts, certificates and reporting, with automated regression tests on a library of test packages.
  4. Migration. Bulk import of the course catalogue and historical completion records, verified per client before switching over.
  5. Launch and support. Client-by-client roll-out and ongoing support, with release practices from our CI/CD pipeline.

Technology choices

  • Laravel β€” a productive PHP framework with queues, scheduled jobs and policies that fit progress commits, reminders and tenant scoping.
  • Vue β€” a lightweight reactive front end for the course player, cohort dashboards and grading screens.
  • MySQL β€” a reliable relational store for learners, enrolments, xAPI statements and reporting summary tables.

Outcomes

  • The existing SCORM catalogue runs without rebuilding courses in a new authoring tool
  • Learners resume where they left off, even after switching devices or losing connection
  • Cohort programmes with deadlines and live sessions run inside the LMS instead of alongside it
  • Employers verify certificates themselves through a public verification page
  • Client HR teams pull their own completion reports instead of requesting them by email

FAQ

Does the LMS support both SCORM and xAPI?

Yes. SCORM packages run through a browser player that implements the runtime API, and xAPI content sends statements to a learning record store built into the platform. Both feed the same completion and reporting rules.

How are certificates made verifiable?

Each certificate carries a unique code linked to a public verification page showing the holder, programme, issue date and revocation status, so employers do not need to contact the provider. Revoking a certificate, for example after an assessment is overturned, updates the verification page immediately, so an old PDF can no longer be presented as valid.

Can one LMS serve several client organisations?

Yes. Each client has its own workspace, and every query is scoped to the organisation. We cover related patterns in education software and our school ERP platform case study. Client admins can enrol staff in bulk from a spreadsheet, assign mandatory courses by department and receive scheduled reports, while the provider keeps control of the shared course catalogue.

How much does a custom LMS cost and how long does it take?

It depends on content standards, cohort features, integrations and migration. Our SaaS development cost calculator gives an indicative range; contact us for a scoped estimate.

SCORM and xAPI Learning Management System screens

Build your next education product with Next Olive

Share your requirements β€” we will propose scope, timeline and stack within one business day.