Overview¶
The OpenEduCat Moodle Integration module (openeducat_moodle) connects OpenEduCat with
a Moodle LMS instance and keeps both systems in step through a two-way synchronization
engine.
OpenEduCat remains the system of record for the academic structure — departments, programs, subjects, students, faculty, batches and enrollments are created in OpenEduCat and pushed into Moodle. Moodle remains the system of record for learning activity — gradebook grades, assignment and quiz results, course completion, attendance and engagement analytics are pulled back into OpenEduCat.
Key Capabilities¶
Bidirectional sync :- Independent push and pull toggles for every entity type, so you decide exactly which data flows in which direction.
Multiple Moodle instances :- Each Moodle site is configured as its own record, with multi-company support.
Connection health monitoring :- Every instance reports a health status (Healthy, Degraded, Down) based on failure count and sync freshness.
Unified ID mapping :- A single mapping table cross-references every OpenEduCat record with its Moodle counterpart, so records are never duplicated.
Change detection :- A sync hash is stored per mapping; unchanged records are skipped instead of being re-sent to Moodle.
Manual sync wizard :- Ad-hoc syncs with a preview / dry-run mode and an option to run the work in the background.
Initial import & reconciliation :- Connect to a Moodle site that already has data and match it against OpenEduCat records, or bootstrap OpenEduCat records from Moodle.
Scheduled actions :- Ten cron jobs cover push, pull, health checks, retries, log cleanup, orphan detection and mapping backups.
Audit trail :- Every operation — success, error or skip — is written to the sync log and surfaced on a dashboard.
Automatic retry :- Failed operations are queued and retried with an exponential backoff schedule.
GDPR-compliant erasure :- Moodle accounts are suspended, never deleted, and mapping references are cleaned up.
What Gets Synchronized¶
OpenEduCat Record |
Moodle Object |
Notes |
|---|---|---|
Department |
Course Category |
Top level of the Moodle category tree. |
Course / Program |
Course Sub-Category |
Created under the department’s category. |
Subject |
Moodle Course |
Each subject becomes its own Moodle course, with its own gradebook, assignments and quizzes. |
Student |
Moodle User (student role) |
Created with a generated password; account suspended, never deleted. |
Faculty |
Moodle User (teacher role) |
Assigned the editing-teacher role on the subjects they teach. |
Batch |
Group |
Groups are created inside each Moodle course of the batch’s subjects. |
Enrollment |
User Enrolment + Role Assignment |
Students are enrolled in the Moodle courses of their subjects. |
Timetable Session |
Calendar Event |
Optional; requires the |
Admin / Non-Teaching Staff |
Role Assignment |
Optional; driven by the Role Mappings tab. |
Moodle Data |
OpenEduCat Record |
Notes |
|---|---|---|
Gradebook grades |
Exam results |
Grade items are also stored for reference under Reporting. |
Assignment grades |
Assignment / exam results |
Pulled from the Moodle assignment activity. |
Quiz best grades |
Exam attendees |
Uses each student’s best attempt. |
Course completion |
Enrollment completion status |
Stored on the student’s course enrollment record. |
Attendance |
Attendance lines |
Requires the |
Engagement analytics |
Engagement records |
Last login, activity completion and course completion per student. |
Module Structure¶
Module |
Purpose |
|---|---|
|
The core integration — connection, mappings, push/pull services, wizards, logs and dashboards. |
|
Routes grades pulled from Moodle into the Advanced Gradebook, and optionally pushes reviewed grades back. Installs automatically when the gradebook modules are present. |
|
Suspends and restores Moodle accounts based on outstanding fees. Installs
automatically when |
Access Rights¶
The module adds two security groups under the Moodle Integration privilege:
Moodle Manager :- Full access — instance configuration, manual sync, initial import, suspend / re-enable accounts, retry queue and role mappings. Granted to system administrators by default.