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.
| Requirement | Why it matters | How to verify |
|---|---|---|
| Learner count and peak concurrency | Compliance 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 compliance | Each 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 packages | Existing 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 launch | External 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 issuance | Pass 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 retention | Assessors 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 dashboards | Managers 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 delivery | Frontline 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.
Open edX handles third-party sign-in through its own third-party authentication (TPA) layer. The documented options are OAuth2 providers, SAML 2.0, Shibboleth and LTI. Older provisional support exists for CAS and SSL client certificates. The OAuth2 defaults include Google, Facebook, LinkedIn and Azure Active Directory, while other providers require configuration. Because the set of supported identity providers is narrower and more specific than Moodle's, the identity design has to be confirmed earlier in the project.
- SAML 2.0 and Shibboleth: These are the usual routes for corporate or campus single sign-on, and they need a tested metadata exchange with your identity provider.
- OAuth2 providers: Azure Active Directory and Google are documented defaults, so confirm whether your tenant or domain setup matches them.
- Provisional protocols: CAS and SSL client certificates are older provisional options, so treat them as items to validate rather than assumed capabilities.
- Account creation: Confirm whether first sign-in creates an account automatically and which attributes are mapped at that point.
- Enrollment sources: Decide whether enrollments come from an HR or student system through an API, a file import or an LTI launch, and who owns that integration.
Confirm the exact provider configuration, the attributes passed at login and how the release you plan to run handles TPA changes with the Open edX community or your implementation partner.
Single sign-on is the first requirement most organizations raise, and it looks similar on both platforms but fails in different places. The identity provider remains the source of truth for passwords, multi-factor policy and account status, while the LMS decides which role a person holds inside a course. Plan the boundary between those two systems before any configuration starts.
- Identity provider ownership: Confirm who operates the identity provider, who can change its claims and how changes reach the LMS.
- Multi-factor policy: Confirm whether the identity provider enforces multi-factor authentication for learners, staff and administrators, and whether any local login path bypasses it.
- Attribute mapping: Agree which attributes (such as a unique identifier, email and organizational unit) become the LMS account key, because changing that key later is disruptive.
- Local administrator access: Keep a documented break-glass path for administrators that does not depend on the identity provider being available.
- Session and timeout rules: Confirm session lengths for shared or kiosk devices, since training records may depend on who was signed in.
Ask your identity team to test sign-in with a set of pilot accounts, including expired and disabled accounts, before the first learner is onboarded.
Just-in-time account creation and role mapping decide whether access follows a person's job or lingers after they leave. A learner who creates an account at first sign-in is convenient, but the LMS still needs rules for roles, course assignment and removal. Deprovisioning is where many training platforms fail an audit, because former employees or contractors may keep access to course content or completion records.
- Just-in-time creation: Decide which identity groups may create accounts on first login and which must be pre-provisioned by an administrator.
- Role mapping: Map directory groups to LMS roles (learner, instructor, manager, administrator) in a written table that the business owner approves.
- Deprovisioning timing: Agree how quickly a disabled identity-provider account stops working in the LMS and whether completion records are retained after removal.
- Orphaned accounts: Run a scheduled reconciliation between the source system and the LMS to find accounts that no longer match an active person.
- Audit logging: Confirm that account creation, role changes and deletions are logged in a form your auditors can read.
Illustrative example: a contractor leaves on a Friday, and the identity provider disables the account that day. Ask the partner to show, in a test environment, whether the LMS login and any active enrollments are blocked and how the record is kept.
Enrollment links the people in the identity source to the courses they must complete. The two common patterns are a push, where the HR or student system sends changes to the LMS as they occur, and a pull, where the LMS or an integration job reads the source on a schedule. Each pattern has different failure modes, so the choice should follow from how often roles change and how quickly training must be assigned.
- Push integration: Changes arrive as events or API calls, which suits new hires and role changes, but requires monitoring for failed deliveries.
- Pull integration: A scheduled job reads a source extract, which is easier to reconcile but delays assignment until the next run.
- Source of record: Confirm which system owns job role, department, location and course entitlements, so the LMS does not hold a competing version.
- Retries and error handling: Agree how failed records are reported to an administrator and who fixes them.
- Platform-specific routes: On Moodle, confirm which web services or external database plugin will carry enrollments. On Open edX, confirm whether enrollments will use an API, a provider integration or an LTI launch.
Ask the partner to document each enrollment route, its owner and its test cases, and to confirm the support status of any plugin before it enters the production design.
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.
| Requirement | Why it matters | How to verify |
|---|---|---|
| Hosting location and provider model | Self-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 testing | Exam 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 release | Moodle 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 /public | From 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 windows | Moodle 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 rule | Open 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 testing | Plugins, 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 recovery | Training 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 path | Learner 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.
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.
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.
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.
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.
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.
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.
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.
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

