For Developers

Implementation Details

This document explains how Edlink works with Moodle. It describes how we interpret and organize Moodle data using a plugin that connects Moodle to Edlink. Keep in mind that some features reflect how Edlink processes Moodle data, rather than Moodle's own design.

Entity Mapping

Here’s how data is mapped between Moodle and Edlink:

| Edlink | Moodle | Notes | | ----------- | ------------- | --------------------------------------------------------------------- | ------ | ----- | ------------------------------------------------------------------------- | | Districts | Root Category | The main Moodle category (ID 1) is treated as a district in Edlink. | | Schools | Categories | Other categories below the root are treated as schools in Edlink. | | Courses | Courses | Moodle courses are mapped to Edlink courses. | | Classes | Courses | Moodle courses are also treated as classes, | People | Users | Moodle users (e.g., students, teachers) are converted into Edlink people. | | Enrollments | Enrollments | Enrollments link users to courses or classes. | | Assignments | Assignments | Moodle assignments are translated to Edlink assignments. | | Submissions | Submissions | Work submissions in Moodle are mapped to Edlink submissions. |

Integration Notes

  1. Plugin Use:
    • The Edlink plugin enables OAuth2-based synchronization between Moodle and Edlink.
    • It also facilitates access to both standard and custom Moodle APIs.
  2. Web Service API:
    • Some data, like assignments, is fetched through Moodle's web service APIs using a generated token.
    • Token management includes auto-refresh and secure storage.
  3. Data Transformation:
    • Moodle’s hierarchy of categories and courses is interpreted to fit Edlink's district, school, class, and course structure.
    • User data, like names and emails, is standardized to align with Edlink’s schema.

If you encounter additional issues or need assistance with specific configurations, please contact Edlink support or your Customer Success Manager.