Skip to main content

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 FixedPlannedCourse with a start and end date, or a FlexiblePlannedCourse that 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 the student role 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 status tells you whether the participant should have access.
  • TeacherEnrollment (optional) links a user to a planned course as a teacher, with a teacher_role_id you 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.

info

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 UIEduframe APIMoodleBlackboard LearnCanvasBrightspace
Course templatecourseCourse category, or a course template*Course template*-Course template
Course editionplanned_courseCourseCourseCourseCourse offering
Participantuser with role studentUserUserUserUser
Course enrollmentenrollmentEnrolment with role StudentCourse membership with role StudentEnrollment with role StudentEnrollmentEnrollment with role Learner
Teacher on editionteacher_enrollmentEnrolment with role TeacherCourse membership with role InstructorEnrollment with role TeacherEnrollmentEnrollment with role Instructor
MeetingmeetingCalendar eventCalendar itemCalendar eventCalendar event
Gradegrade on an enrollmentCourse totalOverall gradeFinal gradeFinal 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.