lms-lrs
A NestJS and Vue reference build of an LMS with a SCORM runtime and an xAPI store
The facts
- Licence
- MIT — OSI approved
- Pricing
- Open source Price source for lms-lrs, opens in a new tab
- Deployment
- Self-hosted
- Platforms
- Web
Standards support
Every line says where the claim came from. We do not test conformance ourselves and we issue no badge of our own.
| Standard | Supported | Provenance | Checked | Note |
|---|---|---|---|---|
| SCORM 1.2 | Yes | editor-checked · 24 Aug 2026— source, opens in a new tab | A window.API object is registered, but it is the 2004 implementation with the LMS-prefixed method names aliased onto it; the data model underneath speaks cmi.completion_status rather than cmi.core.lesson_status. | |
| SCORM 2004 | Yes | editor-checked · 24 Aug 2026— source, opens in a new tab | window.API_1484_11 is registered with Initialize/GetValue/SetValue/Commit and a subset of the 2004 error codes; values are persisted to the NestJS service. | |
| xAPI | Not stated | — | — | — |
| cmi5 | Not stated | — | — | — |
| AICC | Not stated | — | — | — |
| LTI | Not stated | — | — | — |
- Claimed
- — the vendor states it. We have not confirmed it.
- Checked
- — an editor confirmed it on the date shown.
- Verified
- — an official registry lists it, and we link to the entry.
Editor's notes
Two applications and an nginx configuration: a Vue front end that uploads a package and plays it, and a NestJS service that stores the run-time data in Postgres through TypeORM. The author's own repository description is the fairest summary available — "THIS SOLUTION IS NOT OPTIMIZED FOR PRODUCTION. But it can be used as reference material" — and this listing exists because the reference value is real.
What is genuinely useful is seeing the full loop written out in one readable stack: the browser-side API object, the HTTP calls it makes, and the tables that catch them. Very few open projects show the server half of SCORM tracking this plainly.
Two things to know before assuming more than that. The 1.2 adapter is the 2004 implementation wearing 1.2 method names, so a strict 1.2 SCO writing cmi.core.lesson_status is not being served a 1.2 data model. And despite the repository's cmi5 and Tin Can topics, the xAPI module registers no controllers at all — the entities exist, the endpoints do not — so no xAPI or cmi5 support is recorded here.
Maintenance state is plain: two stars, one author, no commits since March 2023. Read it, borrow from it, and do not build on it.
Listed on scorm-tools.com
Maintainers and vendors are welcome to show the listing badge in a README or on a product page. It is free, it does not require a claim, and there is nothing to buy.
Get the embed code