LMS requirements checklist

A practical checklist of functional, security, integration, operational and compliance requirements for choosing or building an LMS, with how to verify each one before you commit to a platform.

On this page

How to use an LMS requirements checklist before choosing Moodle, Canvas or Open edX

If your team must replace or build a learning platform, this checklist shows what to require, how to verify each requirement, and which answers separate Moodle, Canvas and Open edX. Start by turning business needs into written, testable statements: how many learners sign in at peak, which course types you deliver, which SCORM or LTI content must keep working, how people authenticate and enroll, and what evidence auditors or managers will ask for. A requirement that cannot be tested in a demo or proof of concept is a wish, and it should not carry weight in the decision.

The checklist is organized into functional, security, integration, operational and compliance groups. Each row should be scored three ways: against a vendor demonstration, against a proof of concept on your own data, and against a reference environment run by a reference customer or partner. Because self-hosted Moodle, Canvas and Open edX carry no license fee for self-hosted use, the scores drive the real cost of ownership: hosting sized for peak load, identity and HR or student system integration, content migration, theming and upgrades. Ask each candidate to price those items against the scored requirements, not against a generic feature list. Canvas is licensed under AGPL-3.0 like Open edX, so license terms alone will not separate the options.

Pay particular attention to upgrade and support rows. Moodle 5.3 requires PHP 8.3 or later and PostgreSQL 17, and sites must run Moodle 4.4 or later to upgrade. Open edX states that only the latest named release is supported, and Verawood is the current named release. Confirm with each vendor or partner which release line you will run, how long security fixes are guaranteed, and who performs the upgrade and regression testing. Those answers, more than any feature tick box, decide whether the platform still fits your budget cycle in three years.

Functional requirements: learners, content, grading and reporting

This table lists the functional requirements most LMS selections turn on, with the reason each one matters and a concrete way to verify it before contract signature. Read each row as a question to put to a partner or a pilot: the verification column names the test, sample or report to ask for. The main takeaway is that peak load, content standards and completion records should be proven in a pilot with your own data, not assumed from a feature list.

RequirementWhy it mattersHow to verify
Learner count and peak concurrencyCompliance deadlines and exam windows concentrate logins into short periods, which drives hosting size more than total headcount.Ask for load test results at the expected peak, including a named exam or deadline scenario, with the hosting tier and database used.
Course types: self-paced, cohort, blended and complianceEach type needs different enrollment rules, due dates and reminders. Compliance courses also need fixed recertification cycles.Build one example of each type in a sandbox and confirm enrollment, deadlines, reminders and reset rules work as written.
SCORM 1.2 and SCORM 2004 packagesExisting e-learning libraries often depend on one or both versions, and a package that fails to launch can block a whole course.Import a sample SCORM 1.2 and a SCORM 2004 package from your library, launch each as a learner and confirm the completion status is recorded.
LTI Advantage tool launchExternal tools such as assessment, video or simulation vendors connect through LTI, and grades must return to the gradebook.Launch each required tool from a course, confirm the learner is passed through without a second login and that a score returns to the gradebook.
Grading and certificate issuancePass marks, attempt limits and certificate templates often carry regulatory meaning, so errors create audit findings.Run a graded quiz with a failing and a passing attempt, confirm the attempt limit and pass mark, and generate a certificate with the correct name and date.
Training records with completion dates and retentionAssessors look for who completed what, when, and where the record is kept for the required period.Run a completion report for a test cohort, export it, and confirm it shows user, course, completion date and version, and that retention settings are documented.
Reporting and filtered dashboardsManagers and auditors need completion status by role, team or site without manual spreadsheets.Filter the report by a role or department attribute and confirm the counts match a manual check of the same test users.
Mobile access and responsive deliveryFrontline and field staff often learn on phones or shared devices, and content that does not render on a small screen is skipped.Complete one course end to end on a phone and a shared kiosk browser, and note any content, quiz or video that fails to play.
Platform feature set (Moodle 5.3 or Open edX Verawood)Feature availability differs by release, and some items such as the Classic theme removal or the Studio sidebar change how administrators and authors work.Map each required feature to the release notes for the chosen version and confirm with the vendor or partner which items are native and which need plugins.

How identity and enrollment requirements differ by platform

Moodle core ships a set of authentication plugins that cover most identity patterns without a third-party add-on. The list includes manual accounts, email self-registration, an external database, LDAP, LTI, OAuth 2, Shibboleth and web services. Each plugin answers a different question: who creates the account, where the password is checked and how the learner's attributes reach the site.

  • Directory sign-in: The LDAP plugin checks credentials against an existing directory, so staff and students use their usual passwords.
  • Federated sign-in: Shibboleth and OAuth 2 suit campus or enterprise single sign-on, but the exact identity provider setup must be tested against your own tenant.
  • External database: This plugin reads accounts from a database you control, which can serve as a bridge to an HR or student system.
  • Web services: Moodle's web service layer lets an outside system create or update users and enrollments, which is useful for scheduled or event-driven provisioning.
  • Self-registration: Email self-registration is rarely acceptable for regulated training, where accounts should come from a source of record.

Confirm plugin maturity and support status with Moodle HQ, the plugin maintainer or the community before relying on any of them, and confirm which plugins your Moodle version still supports.

Which security controls every LMS requirement set must name

An LMS holds learner identities, grades and training evidence that auditors and regulators may later ask to see. The six controls below are the ones a requirements checklist should name explicitly, with a measurable check for each, so that vendors and implementation partners answer the same questions.

Least-privilege administrator roles

Name who can create courses, change grades, enroll users, install plugins and edit the site configuration, and map each capability to a role instead of a shared admin account. Ask the platform to show how roles are assigned and reviewed, and confirm that privileged accounts use separate logins and strong multifactor authentication. Review the role list each quarter, since staff changes often leave old permissions in place.

Audit logs for grade and record changes

Require a log of every change to grades, completion status, certificates and enrollment, recording who changed what, when and from where. Confirm that logs cannot be edited by the administrators whose actions they record, and that they can be exported to your security monitoring tool. Without this log, a completion record used as compliance evidence can be challenged.

Encryption in transit and at rest

Specify HTTPS for all learner and administrator sessions, with current TLS settings, and encryption at rest for the database, file storage and backups. Ask who holds the encryption keys and where they are stored, and whether video and third-party content is delivered over encrypted connections. Confirm these settings in the hosting design rather than assuming the default configuration meets your policy.

Plugin and theme vetting before install

Every plugin, theme, LTI tool and AI connector extends the platform's trust boundary. Set a written approval step that checks the license, the maintainer, the last release date, the requested permissions and the outbound data flows before installation. For Moodle, confirm that each plugin declares support for your target release, since a plugin that lags a major version can block the upgrade path.

Patch cadence tied to support windows

Moodle 5.1 has security support until 19 April 2027, and Moodle 5.3 has security support until 1 October 2029, so the platform version you choose sets your patch obligations. Write a rule that applies security releases within a fixed window after publication and schedules major upgrades before security support ends. Open edX supports only the latest named release, so an Open edX requirement must include a plan to move to each new release as it ships.

Backup and restore testing

A backup that has never been restored is an assumption, not a control. Require scheduled backups of the database, the moodledata file store and the configuration, stored separately from the production environment, and a documented restore test with a recorded result. Before upgrading, confirm the backup restores on the target PHP and database versions, because Moodle 5.3 requires PHP 8.3 or later and PostgreSQL 17, and sites must run Moodle 4.4 or later to upgrade.

Operational requirements: hosting, peak load, upgrades and support

This table lists the operational requirements that decide whether an LMS runs reliably through exam and enrollment peaks and through upgrades. Each row names the artifact to request from a partner or vendor, so you can compare proposals on evidence rather than assurances. Read it before you shortlist platforms, because hosting model and upgrade windows shape cost and staffing for years.

RequirementWhy it mattersHow to verify
Hosting location and provider modelSelf-hosted Moodle or Open edX keeps learner records in your cloud, data center or disconnected network. MoodleCloud and Moodle Partners offer managed hosting, and Open edX is usually run through a service provider or Tutor.Request a written hosting architecture naming the region or site, the operator of each layer, and who holds administrative access.
Peak concurrency testingExam windows, compliance deadlines and mandatory enrollment waves can create sudden spikes in logins, quiz submissions and video streams that a sized-for-average deployment cannot absorb.Ask for a load test plan with target concurrent users, scenarios (login, quiz, SCORM launch, video), pass criteria and a results report before each peak.
PHP and database versions for the chosen releaseMoodle 5.1 requires 64-bit PHP 8.2 or later (8.3 and 8.4 supported) and supports PostgreSQL 15, MySQL 8.4, MariaDB 10.11 or SQL Server 2017 or later. Moodle 5.3 raises the floor to PHP 8.3, PostgreSQL 17, MariaDB 11.4 or SQL Server 2019.Request a compatibility matrix for the target release, a version inventory of the current stack, and confirmation of any plugins that block the upgrade.
Moodle 5.1 web root change to /publicFrom Moodle 5.1 the web server document root must point to the /public directory rather than the main Moodle folder. Otherwise the site may show directory listings or errors.Ask for the web server configuration file and a post-deployment check confirming the document root and that the main code folder is not web-accessible.
Moodle long-term support windowsMoodle 4.5 is LTS with security support until 4 October 2027. Moodle 5.3, released 5 October 2026, is the next LTS with general support until 4 October 2027 and security support until 1 October 2029. Budget cycles should match these windows.Ask the partner for a written upgrade calendar mapping your planned version to its support end date, and the budget owner for each upgrade.
Open edX release cadence and single-supported-release ruleOpen edX supports only the latest named release. Verawood was published 30 July 2026, with Willow planned for December 2026 and Xylon for June 2027, so the platform must be moved forward regularly.Request an upgrade runbook covering each planned release, test coverage for custom code and micro-frontends, and the partner's plan for keeping pace with releases.
Staging environment and upgrade testingPlugins, themes and integrations are the most common failure points during upgrades. A production-like staging environment shows breakage before learners do.Ask for a description of the staging environment, its data refresh method, and a signed-off regression test list for each upgrade.
Backup and disaster recoveryTraining records are evidence for audits. A backup that cannot be restored, or a restore that drops completion history, creates compliance exposure.Request the backup schedule, retention period, encryption approach, last successful restore test report, and recovery time and recovery point targets agreed in writing.
Support hours and escalation pathLearner access problems during a live course or exam need a named response path. Open edX maintainers recommend a service provider for production, and limited community support is available for bare-metal installs.Ask for the support hours, severity definitions, escalation contacts, and the written response targets included in the proposed contract, if any.

Setting an upgrade policy that survives release cycles

This sequence turns upgrades from an unplanned event into a repeatable routine that keeps the LMS on a supported release line, with tested plugins and a rollback path in place before any change reaches learners. Start by deciding which release line the organization will run, because that choice sets every later date.

  1. Choose the release line and support window

    The LMS owner and the platform lead agree which release line the organization will run and how often it will move. For Moodle, the policy should name the long-term support line and its security end date, since Moodle 5.3 is the next LTS with security support until 1 October 2029. Moodle 4.5 has security support until 4 October 2027. For Open edX, the policy should state that only the latest named release is supported, with Verawood current and Willow and Xylon planned for December 2026 and June 2027. Done when the policy names the line, the upgrade cadence and the owner who approves each move.

  2. Confirm the target release and its runtime requirements

    The platform engineer reads the release notes for the chosen target and checks the minimum PHP, database and web server versions against the current hosts. Moodle 5.3 requires 64-bit PHP 8.3 or later, PostgreSQL 17, MySQL 8.4, MariaDB 11.4 or SQL Server 2019 or later, and an existing site on Moodle 4.4 or later. Moodle 5.1 requires PHP 8.2 or later, and the web root must point to the /public directory. Done when a written gap list shows which hosts, database engines or Moodle versions need work before the upgrade can start.

  3. Build the staging copy from production

    The platform team clones the production database, the file store and the configuration into an isolated staging environment that has no outbound email, no live LTI connections and no live payment or grading integrations. Secrets are replaced with test values. Done when staging matches production in version, data volume and configuration, and the team can sign in with test accounts for each role.

  4. Test plugins, themes and integrations on staging

    The QA lead and the integration owner inventory every third-party plugin, theme and external connection, including SSO, HR or student information system feeds, LTI tools and SCORM or xAPI content delivery. Each item is checked against the target release, and any plugin without a compatible version is flagged for replacement or removal. Moodle 5.3 removes the Classic theme from core, so custom themes built on it need attention. Done when every item has a pass, fix or replace status and an owner.

  5. Rehearse the upgrade and the rollback

    The platform engineer runs the full upgrade on staging from a clean copy, times each step, and records the commands, configuration changes and any manual fixes. The same run includes a rollback: restoring the pre-upgrade database and files from backup and confirming that the site returns to its prior state. Done when the runbook has been executed end to end at least once, the rollback has been proven, and the team has signed off the steps in writing.

  6. Run acceptance checks with course and admin owners

    Course owners, compliance staff and administrators test the scenarios that matter most to the business: enrollment, grade passback, certificate issuance, completion reports and learner sign-in for each identity provider. The results go into an acceptance record. Done when the named owners have approved the staging results and any open defects are either fixed or accepted with a documented risk decision.

  7. Schedule the change outside peak learning periods

    The service owner picks a change window with the academic, training or compliance calendar, avoiding scheduled exams, mandatory certification deadlines and large cohort launches. Learners and administrators receive advance notice, and the on-call contact is named for the window. Done when the change calendar shows the approved window, the rollback decision point and the people who can call it.

  8. Verify production and record the outcome

    After the upgrade, the platform team runs the acceptance checklist on production, reviews logs and error rates, and confirms backups are current. The change record is updated with the release reached, the support end date that now applies and any deferred items. Done when the production checks pass, the record is filed, and the next upgrade date is set against the release line chosen in the first step.

Which compliance requirements change the LMS checklist

Compliance needs are set by the obligations your organization carries, not by the LMS you choose. Before you write any compliance line into the checklist, list the laws, contracts, sector rules and internal policies that touch training, then ask which of them require a record, a retention period, a data location or an accessible course. Only after that list exists does it make sense to map requirements onto Moodle, Open edX or Canvas. A platform can store completion records, but it cannot decide what your regulator expects, and no open-source platform makes an organization compliant on its own.

Accessibility is the clearest example of an obligation with dates attached. The ADA Title II rule requires state and local government web content and mobile apps to meet WCAG 2.1 Level AA, and the interim final rule published April 20, 2026 set compliance dates of April 26, 2027 for entities with 50,000 or more people and April 26, 2028 for smaller entities and special districts. For an LMS, ask who owns the theme, which plugins render learner-facing pages, and who is responsible for remediating instructor-made course files. Confirm with counsel whether your organization is covered and which date applies to you.

Audit-ready completion records and retention need the same discipline. Decide which evidence an assessor will ask for: who completed what, when, against which policy version, and with what score. Then confirm the retention period with counsel and the assessor, and decide where those records live and who can export them. Data location matters too, because learner records, backups and any third-party plugin or video service may move data outside the jurisdiction you expect. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies do that work, so confirm regulatory scope with them before you commit to a design.

What buyers ask before scoping an LMS requirements project

How much does it cost to implement an open source LMS?

Moodle, Canvas and Open edX have no license fee for self-hosted use, so the cost is what you pay people and infrastructure. The main components are hosting sized for your peak load, setup and theming, integrations with identity and HR or student systems, content migration, testing, and upgrades and support over the life of the platform. Setup is largely one-time work, while hosting, security patching, major-version upgrades and support recur. Costs rise with the number of integrations, the volume of legacy SCORM or xAPI content to move, custom plugins and the number of certification or compliance reports you need. Ask any implementation partner for a quote built from a written scope that lists each of these components separately, with the assumptions behind each line.

How long does an LMS rollout take and what changes the timeline?

The timeline depends on scope, not on the platform's license terms, so agree a duration only after the requirements are written down. The factors that move it most are the number of identity and HR or student system integrations, how much content must be migrated and checked, whether custom plugins or accessibility remediation are needed, and how many approval cycles your security, compliance and procurement teams require. Platform release timing also matters: Moodle 5.3 is the current long-term support release, and Open edX's named releases follow a set schedule, so confirm which version you will launch on and how an upgrade would be scheduled. Ask for a phased plan with dated milestones in the written scope.

What does our internal team need to provide before an LMS project starts?

Your team needs to supply four things before any build work begins. First, named requirements owners for training, compliance and IT who can answer questions and sign off on course types, grading and reporting. Second, access to identity and HR data, including the directory your staff log in with, the fields that drive enrollment, and the rules for when people leave or change roles. Third, a content inventory listing every course, its format (SCORM, xAPI, LTI, video or document), its owner and whether it is still current. Fourth, a decision maker with authority over scope, budget and go-live. Missing any of these usually extends the schedule more than technical complexity does.

Can our team run an LMS requirements project without an outside partner?

A capable internal team can run a requirements project alone if it has people who know the LMS platform, your identity stack and your training obligations. The harder work is usually the parts with the least visibility: testing peak concurrency, migrating and validating SCORM content, configuring authentication and enrollment correctly, and producing reports that an auditor will accept. Open edX's maintainers recommend running it in production through a service provider or with Tutor, and note that bare-metal installation is complex, which is a useful signal for teams without deep platform experience. Decide early which activities your team owns, which a partner will own under a fixed-scope agreement, and how knowledge will transfer.

How do we choose between Moodle, Canvas and Open edX?

Choose based on the requirements you wrote, not on brand preference. Moodle is licensed under GPL-3.0 and ships core authentication plugins for LDAP, LTI, OAuth 2, Shibboleth and web services, which covers many enterprise and academic identity setups. Open edX is licensed under AGPL-3.0, is built on Python and Django, and supports OAuth2, SAML 2.0, Shibboleth and LTI for third-party sign-in. Canvas LMS is also AGPL-3.0 licensed, so confirm its self-hosting, support and integration requirements directly with its maintainers. Test each candidate against your top ten requirements, including SCORM and LTI tools, reporting, accessibility and your upgrade policy. Ask each candidate to show how it meets those requirements in a working environment.

How do we test an LMS for peak load before launch?

Test peak load against the scenario you actually expect, such as an annual compliance deadline when most staff log in within the same hour, or an exam period for a school. Define the number of concurrent learners, the courses and quizzes they will open, the identity logins that happen at the same time, and the report runs that administrators will start during the peak. Run the test on infrastructure that matches production, including the database version and cache layer. Moodle 5.3 and Open edX both list specific database and PHP or Python requirements, so confirm those versions before you size the environment. Multi-node Open edX deployments also need a shared cache such as Redis or Memcached, which should be part of the load test.

What should an implementation partner include in a written LMS scope?

A useful written scope lists the requirements it covers, the platform and version, and the environments it will build, such as development, test and production. It should name every integration with its data direction, the authentication method, the content types and migration volume, and the grading, certificate and reporting outputs. It should state who performs accessibility testing and remediation, how upgrades and backups are handled, what documentation and admin training are delivered, and what support runs after go-live. Acceptance criteria, deliverables and milestones should be written and agreed before work starts. Ask for the scope in writing and request a quote built from that scope, not from a general estimate.

Which vendor answers separate one LMS platform from another

The same requirement can be met in several ways on Moodle, Canvas or Open edX, so a written answer from a candidate proves little on its own. Ask each candidate to show the behavior in a sandbox built from your own requirements. For SCORM and LTI content, ask them to launch a sample package from your library, show where completion and score data land in the gradebook or learning record store, and explain what happens when a learner opens the same package on a different device. Ask them to name the LTI Advantage tools they have connected in production and which of those they have only tested. For identity, ask for a live demonstration of a role mapping: a test user from your identity provider signing in, receiving the correct course enrollments and losing access after the attribute changes. Ask which authentication method they would use (for example, SAML 2.0, LDAP or OAuth 2) and which provider settings they would need from your team.

Peak load and upgrades are where vendor answers diverge most. Ask for the load test they ran, the number of concurrent users simulated, the database and cache configuration used, and the test date. A candidate who cannot produce that record has not measured the risk. For upgrades, ask how they will map your current release against the security and general support windows published for the platform. Moodle publishes these windows per release, and Open edX supports only its latest named release, so a plan that ignores the support calendar leaves you exposed. Confirm the minimum PHP and database versions required for the target release and the web server change needed for the new public directory, because a missed setting breaks the site after upgrade.

Finally, ask every candidate to list each plugin they will install, who maintains it, its license, and how it is updated and tested against core upgrades. Ask what learner and admin support is included in the quote, including hours, channels, response targets stated in writing, and who handles escalations to upstream projects. Compare the answers against the full set of questions in the LMS RFP questions topic, and record each answer in the written scope so it becomes a contractual deliverable rather than a verbal promise.

How DeployOpen scopes, delivers and supports an LMS requirements and implementation project

DeployOpen turns LMS requirements into a written, fixed scope before any build starts, covering learner volumes, content types, identity, HR or student system links, records and hosting. We plan, implement, integrate, harden, document and hand over a self-hosted Moodle, Canvas or Open edX platform inside your own infrastructure, then support it under a retainer if you want ongoing help.

How we scope

  • Workshops to capture learner counts, peak concurrency, course types and SCORM or LTI content inventory
  • A written scope listing authentication, enrollment, HR or SIS integrations, grading and certificate rules
  • Agreed deliverables, timelines and acceptance criteria documented before any build work begins

How we build

  • Platform selection support covering Moodle, Canvas or Open edX against your requirements and hosting model
  • Configuration of identity, enrollment feeds, reporting and training record exports to your specified standards
  • Accessibility checks on theme and plugins, plus load testing sized to the peak concurrency agreed in scope

How we hand over

  • Documentation of architecture, configuration, integrations, backup and upgrade procedures for your own teams
  • Runbooks for the agreed upgrade policy, including PHP and database version requirements for each release
  • Evidence packs describing controls and records that your auditors or assessors can review independently

How we support

  • Ongoing support, upgrades and continuous testing available as a retainer after handover
  • Patch and release planning aligned to the vendor's support windows for your chosen platform version
  • Clear confirmation with your team of who handles learner support, administrator support and content changes

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.