How Eduframe models courses, editions, users and enrollments
Before writing any code you must decide on how Eduframe objects map onto your LMS. Six objects can play a part in an LMS integration. Everything else in Eduframe (orders, invoices, programs) can be ignored, apart from a custom field you may use to mark which course templates are in scope.
The objects
- Course is the template: the name, code and description of something you teach. In the Eduframe UI this is called a course template.
- PlannedCourse is one edition of a course: a specific run with dates, a location, a price and participants. In the UI this is a course edition. This is the object that becomes a course in your LMS. A planned course is either a
FixedPlannedCoursewith a start and end date, or aFlexiblePlannedCoursethat participants can start at any time (typical for self-paced online courses). - User is any person: participants, teachers and administrators are all users, distinguished by their
roles. A participant in Eduframe has thestudentrole in the API. A user can also carry a principal ID (external_identity.principal_id), the identifier of that person in your identity provider or LMS. - Enrollment links a user to a planned course as a participant. Its
statustells you whether the participant should have access. - TeacherEnrollment (optional) links a user to a planned course as a teacher, with a
teacher_role_idyou can map to an LMS role. - Meeting (optional) is a scheduled session of a planned course. Only sync meetings if your LMS has a calendar you want to populate.
The core of every integration is courses, planned courses, users and enrollments. Teacher enrollments and meetings are optional and depend on the scope you choose in Decisions to make before you build.
Throughout this guide we use examples from Canvas, Brightspace, Moodle and Blackboard as a reference. The same principles hold for any other LMS, only using different terminology.
Mapping to your LMS
The table below shows a mapping that works for most training businesses. Adjust it to your LMS's vocabulary.
| Eduframe UI | Eduframe API | Moodle | Blackboard Learn | Canvas | Brightspace |
|---|---|---|---|---|---|
| Course template | course | Course category, or a course template* | Course template* | - | Course template |
| Course edition | planned_course | Course | Course | Course | Course offering |
| Participant | user with role student | User | User | User | User |
| Course enrollment | enrollment | Enrolment with role Student | Course membership with role Student | Enrollment with role StudentEnrollment | Enrollment with role Learner |
| Teacher on edition | teacher_enrollment | Enrolment with role Teacher | Course membership with role Instructor | Enrollment with role TeacherEnrollment | Enrollment with role Instructor |
| Meeting | meeting | Calendar event | Calendar item | Calendar event | Calendar event |
| Grade | grade on an enrollment | Course total | Overall grade | Final grade | Final grade |
* Moodle and Blackboard do not require a template object to create a course. In Moodle a course only needs a category; in Blackboard a course is created standalone and can optionally be copied from a template course. Canvas works the same way, which is why the native Eduframe integration only syncs planned courses. Brightspace is the exception: a course offering must belong to a course template, so syncing the Eduframe course template is mandatory there.