Kursthemen

  • Starthilfe

  • CMS-Anbindung - Eine Grundsatzfrage

      • Was soll mit einer CMS-Anbindung erreicht werden?

      • Welche Möglichkeiten bietet eine CMS Anbindung …
        • ... auf Seiten von Moodle?
        • ... auf Seiten des CMS?

      • Wer bedient die Anbindung …
        • ... auf Seiten von Moodle?
        • ... auf Seiten des CMS?

      • Sind die Ressourcen für die Betreuung und Instandhaltung vorhanden?

      • Was soll automatisiert werden, und wie viel Automatisierung ist überhaupt gewünscht?
        • Beispiel: automatische oder manuelle Synchronisierung einzelner Veranstaltungen?
  • Drei Perspektiven: Nutzer*innen, Verwaltung, Technik

    • Perspektive: Nutzer*innen
      • Automatisierung kann Adaption von Moodle bei den Lehrenden fördern
        • Beispiel: durch Arbeitsersparnis beim Anlegen von Kursen

      • Flexibilität für Lehrende: Automatisiert erstellte und manuell erstellte Kurse möglich?

      • "Kultur" an der Hoschule bedenken!
        • Ist eine "tiefe" oder eine "oberflächliche" Integration von Moodle in den Alltag der Lehrenden und Studierenden gewünscht? 
          • Beispiel: Moodle als "das Kommunikationsmittel" zwischen Lehrenden und Studierenden

      • Möglicher Wegfall von Einschreibeschlüsseln erleichtert Zugang
        • Beispiel: bei Abwesenheit in der ersten Sitzung
        • Aber: Kann auch zu Studierenden in Kursen führen, in die sie eigentlich nicht möchten
    • Perspektive: Verwaltung
      • Kontrolle über Kursangebot
        • Aber: Kann zu "toten" Kursen führen

      • Einheitliche Benennung / Verlinkung sorgt für Übersicht über verschiedene Systeme hinweg
        • Aber: Nimmt Möglichkeit zur Individualisierung

      • Sollen Informationen über Moodle-Kurse an das CMS zurückgespielt werden?
        • Beispiel: Direkte Verlinkung zum Moodle-Kurs aus dem CMS heraus
    • Perspektive: Technik
      • Auf welche Systeme lässt sich zugreifen?
        • Beispiele: Datenbanken, APIs

      • Dürfen / können Daten zwischengespeichert werden?

      • Sind die Ressourcen für die Umsetzung einer maßgeschneiderten Lösung vorhanden?

      • Welches System soll führend agieren, d. h. als "Source of Truth"?
  • Beispiel: LSF @ Deutsche Sporthochschule Köln


      • Täglicher Datenbank-Dump aus LSF
        • Aufbereitung der Daten via Skript, werden in externe Datenbank übertragen.
        • Mapping von Usern über ID aus LDAP

      • Tabellen in externer Datenbank für User / Kurse / Enrolments werden nach jedem Dump neu erzeugt, so dass der exakte Stand von LSF abgebildet wird.
      • Daten werden via "Moodle External Database Enrolment" in Moodle eingespielt.
        • Das External Database Enrolment läuft alle 24 Stunden.

      • Erzeugte Kurse sind initial unsichtbar, werden je nach Semester einer entsprechenden Kategorie zugeordnet.
        • Diese Zuordnung muss in den Einstellungen des Enrolments für jedes Semester angepasst werden.

      • Accounts werden bei Abwesenheit in Enrolment-Tabelle von den Moodle-Kursen abgemeldet.

      • Es findet keine Rückübermittlung an LSF statt, der Transfer geschieht nur in eine Richtung.

      • Die Buffer-Datenbank ist somit die "Source of Truth".
    • Moodle External Database Enrolment

      • Standard-Feature von Moodle ➡️ Markiert User als via External Database Enrolment erzeugt

      • Unterstützt zwei Entitäten

        • User
          • Erstellung / Update / Löschung / Sperrung
          • Einschreibung / Ausschreibung zu Kursen
          • Zuweisung einer Rolle
          • Update der externen Datenbank mit in Moodle geänderten Werten möglich

        • Kurse
          • Erstellung (optional: aus Template)
          • Hinzufügen zu Kategorie
          • Aktivieren / Deaktivieren von Einschreibung (optional: mit Rollenentfernung)
          • Update der externen Datenbank mit in Moodle geänderten Werten nicht möglich!

      • Enrolment-Aktionen geschehen bei Login.

      Notwendige / Empfohlene Tabellen-Felder:


      TABELLE: USER
      • user_name
      • id_number (optional)
      • email (optional)
      • password (optional)
      TABELLE: COURSE
      • short_name
      • id_number (optional)
      • full_name (optional)
      • category_id (optional)
      TABELLE: ENROLMENT
      • user_id_number
        • oder: user_name
      • course_id_number
        • oder: short_name
      • role_id (optional)
  • Beispiel: HISInOne @ Bergische Universität Wuppertal


      • Eine direkte Anbindung der CMS-Datenbank ist nicht möglich.

      • Nutzt orchestrierte Daten der HISInOne SOAP-API.

      • Verarbeitung der Daten durch Middleware via PHP und Speicherung in MySQL-DB.

      • Bereitstellung der Daten durch Middleware via PHP REST-API.


      • Bedarf eines API-Users, muss die notwendigen Berechtigungen besitzen
        • Webservice-Token
        • Protokoll (hier REST)

      • Web Services können verschiedene Funktionen zugewiesen werden
        • Bspw. "Create new courses"

      • Web Services sollten nur für berechtigte User zur Verfügung stehen!


      • Daten aus Moodle werden über eine weitere PHP REST-API an HISInOne zurückgespielt.
        • Ermöglicht Verknüpfung von Moodle-Kurs und HIS-Kurs.
        • Zudem weitere Informationen über Moodle-Kurs enthalten (Name, Semester usw.).

      • Das External Database Enrolment ist hierfür unzureichend, da keine Daten, die Kurse betreffen, aus Moodle in die externe Datenbank zurückgespielt werden können.

      • Die Buffer-Datenbank bilden den Stand für Kurse und User von Moodle ab.
        • Ist allerdings nicht die "Source of Truth" ➡️ Diese Funktion übernimmt die HIS-DB.
  • Potenzielle Ansätze & Material