Case Study

LMS Development for EdTech

A corporate training platform relied on spreadsheets and disconnected tools to run its courses. DXDasia built a custom LMS that centralised course delivery, tracking, and certification — cutting rollout time 3× and lifting completion to 92%.

Key result

3× Faster Course Rollout, 92% Completion Rate

Custom LMS DevelopmentLearner Portal & Admin DashboardCourse Authoring ToolsCertification & Assessment EngineAnalytics & Reporting
Child attending an online class on a laptop at home

The challenge

The platform was managing course delivery through a patchwork of spreadsheets, email, and a generic file-sharing tool — workable at a small scale, but breaking down as the learner base grew.

  • No central system to track learner progress or completion across courses
  • Certificates issued manually, creating delays and inconsistent records
  • Course content scattered across drives with no version control
  • Zero visibility for admins into which learners were falling behind

Our approach

We built a custom Learning Management System designed around how the platform actually delivers training, not a generic off-the-shelf tool retrofitted to fit.

  • Course authoring system supporting video, quizzes, and structured modules
  • Automated progress tracking and certification on course completion
  • Role-based admin dashboard showing learner progress at a glance
  • Mobile-responsive learner portal with single sign-on

The outcome

The new LMS turned a manual, error-prone process into a self-running system:

  • 3×faster course rollout from content-ready to learner-live
  • 92%course completion rate, up from an untracked baseline
  • Certification issued automatically on completion, zero manual work
  • Admins get real-time visibility into learner progress and drop-off points
  • Course content now version-controlled and centrally managed
Want results like this for your business?Tell us what you need. You get a free plan and a fixed quote within one business day.

Why it worked

Training platforms don’t fail because the content is weak — they fail because the system delivering it can’t scale. Replacing spreadsheets with a purpose-built LMS turned course delivery from a manual chore into infrastructure that runs itself.

The technical approach

The LMS was built on a custom backend with a role-based data model separating learners, courses, and administrators, so permissions and reporting stayed clean as the platform grew. Course content supports video, structured modules, and quizzes, with progress tracked at the module level rather than just “complete/incomplete” — giving admins a real picture of where learners drop off, not just whether they finished. Certification generation and notifications are fully automated, triggered directly off course-completion events rather than run as a manual batch process. The learner portal was built mobile-responsive from the start, since a meaningful share of course completions happened outside a desktop browser.

Tech Stack: React, Node.js, PostgreSQL, AWS S3 for video hosting, built to SCORM/xAPI compatibility standards.

Should you build a custom LMS or buy one off the shelf?

Neither is right by default. The decision turns on how unusual your training logic is, how many systems it must connect to and how long you can wait for the first course to go live.

Which learning standards should the platform support?

SCORM dates from 2001 and tracks content launched from an LMS. xAPI is an IEEE-approved standard (IEEE 9274.1.1-2023) in which applications send "noun, verb, object" statements to a Learning Record Store, covering online and offline activity. The same page links cmi5 as the profile for using xAPI with an LMS. If completion and test scores are all you need, SCORM is simpler; if you want activity from mobile apps, simulations or assessments outside the LMS, xAPI earns its extra setup.

Decision factorBuy or configureBuild custom
Standard SCORM hosting and enrolmentUsually coveredPossible, but you maintain it
Training logic outside what a product configuresNeeds plugins or workaroundsDesigned in
Standards (SCORM, xAPI, cmi5, LTI)Check each candidate; xAPI and cmi5 support variesCan be native
Ongoing costLicence feesMaintenance and hosting, indefinitely
Time to first course liveFastestSlowest

A decision checklist to test against your own requirements, not independent research.

What do we know about learner completion?

Completion depends on design as much as content. An analysis of 221 open online courses found rates from 0.7% to 52.1%, a median of 12.6%, lower completion in longer courses and higher completion where assessment was auto-graded only (2015). Those are open courses with unpaid, unsupported learners, so corporate and paid programmes should expect different numbers. The takeaway is to track progress at module level so you can see where learners stop.

Because many learners study on phones, check the learner portal against Google's Core Web Vitals thresholds: LCP of 2.5 seconds or less, INP of 200 milliseconds or less and CLS of 0.1 or less at the 75th percentile.

How can you apply this approach in your own business?

Start from your training logic and your reporting needs, not from a feature list.

  1. Write down the standards and integrations first List the SCORM version, whether you need xAPI or cmi5, and the systems the LMS must talk to: single sign-on, HR, CRM, payments. Ask every shortlisted product to show each one working, not described.
  2. Decide where completion records live If you run an LMS plus a separate Learning Record Store or video platform, pick one system as the authority for completion. Settle this before building anything.
  3. Test a commercial LMS against your hardest course Load your most complicated programme into two products. If the logic fits with configuration, buy. If you need workarounds for the core of your offer, that is the case for a custom build.
  4. Budget for the unglamorous parts Certificates, audit trails, roles and permissions, data deletion and video hosting take much of the effort. Ask for these to be scoped separately in writing.
  5. Track progress at module level Record where each learner stops, not just whether they finished. That data tells you which module to rewrite, and it needs a sound reporting layer such as analytics dashboards.
  6. Plan the maintenance year Hosting, security patches, standards updates and content versioning continue after launch. A maintenance and support plan belongs in the first budget.

When we built reporting for client dashboards, a flat average of rate metrics gave one client a 97.8% engagement rate and sessions of 89.1 seconds. Weighting by sessions gave the true 72.3% and 70.7 seconds. The same trap applies to an LMS: averaging completion across courses of very different sizes hides the small course everyone drops out of. We weight rates by learner numbers before they reach any dashboard.

Looking ahead

With the manual bottlenecks removed, the platform now scales by adding courses and departments rather than adding admin headcount — the same system that handled the first cohort handles the tenth without extra overhead. The admin dashboard’s learner-progress data is also starting to shape content strategy: modules with high drop-off rates are now visible immediately instead of surfacing months later through anecdotal feedback, letting the team revise weak content before it affects the next cohort rather than after. What began as a fix for a tracking problem has become the platform’s main source of insight into what’s actually working in the curriculum. It also meant the team could stop treating course updates as a rare, disruptive event — with version control and clear progress data in place, revising a module is now routine maintenance rather than a project.

Frequently asked questions

Do I need xAPI, or is SCORM enough?

SCORM is enough if you only need to know that a learner launched content, completed it and scored a result inside the LMS. xAPI becomes worthwhile when you want activity from outside the LMS, such as mobile apps or simulations. It is an IEEE-approved standard, but it takes more setup, so choose it for a reason.

How long does a custom LMS take to build?

It depends on scope, integrations, the standards you support (SCORM, xAPI) and how many types of learner you have, so no single figure is reliable. A narrower first release gets learners onto the platform sooner. Scope and timing for any DXDasia project are confirmed in writing after a discovery call.

What is a Learning Record Store?

A Learning Record Store (LRS) is the database that receives and keeps xAPI statements, each recording something a learner did in the form of noun, verb and object. It can run on its own or inside an LMS. If you use both, decide which one is the authority for completion records.

Is 92% course completion a realistic target for any programme?

Not as a general benchmark. Open online courses studied in 2015 had a median completion of 12.6%, though those learners were unsupported. Paid, cohort-based or employer-mandated programmes behave differently. Set a target from your own history, measure by module, and compare like with like. See our LMS case study for one project's context.

Sources

  1. xAPI.com: xAPI overview (IEEE 9274.1.1-2023)
  2. IRRODL: Massive open online course completion rates revisited (2015)
  3. web.dev: Web Vitals

More case studies

Get Started

Want results like this?

Get a Free Proposal →