# OpenOLAT

OpenOlat ist eine webbasierte Lernplattform für Lehre, Lernen, Bewertung und Kommunikation. Der Name steht für Open Online Learning And Training und hebt damit vor allem die Aspekte Open Source sowie Online hervor. OpenOlat ist eine Open-Source-Software und wird seit 2011 von frentix GmbH entwickelt. OpenOlat basiert auf dem LMS OLAT der Universität Zürich.

## Geschichte

OpenOlat entstand aus dem Open-Source-Projekt OLAT. Im Jahr 2011 wurde von der Universität Zürich ein massives Refactoringprojekt mit dem Redesign des gesamten Codes gestartet und auf das Versionskontrollsystem Mercurial gewechselt. Mit Beginn der Überarbeitungen wurde der Zugang zum Repository der Entwickler für die Open-Source-Community gesperrt und damit eine Einflussnahme verhindert. Open Source wird seitdem von den OLAT-Entwicklern vor allem als Veröffentlichung von fertigem Code unter der Apache-Lizenz verstanden, ohne einen zugrunde liegenden Community-Prozess. Aus diesem Grund wurde Ende 2011 der Fork OpenOlat initiiert. OpenOlat ist eine alternative Entwicklung zu OLAT und fördert einen transparenten Entwicklungsprozess unter dem Einbezug der Open-Source-Community. Initiator dieses neuen Projektes ist frentix GmbH, ein Spin-off der Universität Zürich, das von einem der ursprünglichen OLAT-Erfinder gegründet wurde und bis 2011 kommerzielle Dienstleistungen für OLAT anbot. Seit der Gründung 2006 hat frentix wesentliche Funktionen zum OLAT-Code beigetragen und war verantwortlich für einen großen Anteil des Bugfixing.
Für kommerzielle Kunden hat frentix bis Ende 2011 OLATpro bereitgestellt, das Funktionen enthielt, die nicht im Public Release vorhanden waren. Mit Wechsel zu OpenOlat wurden viele der frentix-eigenen Funktionen portiert und sind seitdem auch im OpenOlat-Open-Source-Release verfügbar.
Im Jahr 2020 wurden in OpenOlat Open-Source-Editoren von OnlyOffice integriert, damit die Mitglieder Textdokumente, Tabellenkalkulationen und Präsentationen gemeinsam online bearbeiten können.

## Funktionalität

OpenOlat bietet viele Funktionalitäten für Lernen und Lehren in Kursen. Ein Baukastensystem erlaubt es, didaktische Methoden unter Einbindung von Kommunikation, Kollaboration und Bewertung einzusetzen. Lernressourcen können auch nicht-registrierten Benutzern, sogenannten Gästen, zugänglich gemacht werden. Über verschiedene Buchungsmethoden können Lerninhalte kostenpflichtig zur Verfügung gestellt werden.

### Kurssystem und Lernressourcen

Das Kurssystem ist das zentrale Element einer OpenOlat-Installation. Alle Lernressourcen können in einen oder mehrere Kurse eingebunden werden. Wird die Lernressource bearbeitet, ändert sie sich in allen Kursen.
Folgende Lernressourcen stehen in OpenOlat zur Verfügung:
* Kurse: der OpenOlat-Kurs ist ein Containerformat und OpenOlat-eigener Dokumententyp. Der Kurs gestattet, durch den Kurseditor verschiedene didaktische Szenarien abzubilden, in dem beliebig viele Kursbausteine und Lernressourcen eingebunden werden.
* CP-Lerninhalt: IMS Content Package, kurz IMS CP, ist ein Lerninhalt in einem standardisierten E-Learning-Format.
* SCORM: Sharable Content Object Reference Model, ein weiteres standardisiertes E-Learning-Format für Lerninhalte.
* Wiki, Podcasts und Blogs
* Portfoliovorlage: Portfoliovorlagen werden als Portfolioaufgaben in Kurse eingebunden. Damit werden Lernergebnisse und Lernprozesse dokumentiert.
* IMS-QTI-Tests: Tests können als Prüfungstests oder als Selbsttests in OpenOlat eingebunden werden.
* Ressourcenordner: Ressourcenordner werden dafür genutzt, Dokumente und Dateien abzulegen, die entweder in verschiedenen Kursen zur Verfügung stehen sollen, oder als Ordner im Katalog eingebunden werden.
* Glossar: Mit einem Glossar können Begriffsklärungen in Lerninhalten angezeigt werden, ohne diese im Lerninhalt selbst einzubinden.
* Formular: Um Daten zu erheben wird es Kursbesitzern möglich gemacht, mit Formularen Fragebögen zu erstellen, die die Teilnehmenden anonym ausfüllen können. Ein Fragebogen dient in der Regel der Datenerhebung.
* Video: Videos können aus dem Internet durch Links oder als .mp4-Datei importiert werden. Man kann sie konfigurieren und ihnen Quiz, Anmerkungen, Sprungmarken und Untertitel hinzufügen.
* Weitere: z. B. PDF-, PowerPoint-, Excel- und Word-Dateien, sowie Bild, Musik und Animationen. Word, Excel oder PowerPoint Dateien können direkt in OpenOlat als Lernressource erstellt werden.

### Testen & Bewerten (eAssessment)

Mit Hilfe des Kurseditors werden die Tests in Darstellung und Bearbeitungsoptionen angepasst. Tests werden importiert oder mit dem QTI-Testeditor erstellt. Der Fragebogen in Formularen eignet sich für Umfragen und Datenerhebungen. Über das Bewertungswerkzeug und das Archivierungswerkzeug können Tests und Fragebögen ausgewertet werden.
* verschiedene Test- und Aufgabentypen: Test, Selbsttest, Fragebogen, Portfolioaufgaben, Aufgaben, Videoaufgaben, Gruppenaufgaben
* verschiedene Fragetypen: Multiple Choice, Single Choice, Lückentexttest (mit Dropdown), Kprim, Freitext, Matrix, Zuordnung mit Drag&Drop, Hottext, Hotspot, Dokumente hochladen und Zeichnen, True/False
* Testfragen: Fragenpool und randomized Reihenfolge; Feedback-Einstellungen
* Bearbeitungsoptionen können festgelegt werden: Bearbeitungsdauer, erlaubte Versuche, Notizenfunktion; Abbruch oder Unterbruch gestatten
* Zeitbeschränkung kann eingestellt werden
* Darstellungsoptionen im Kurs: Vollbild, Menünavigation Ein-/Ausschalten, Fragendarstellung, Resultatsanzeige
* Ergebnisauswertung pro Test und pro Nutzer inklusive Export
* Graphische Testauswertung mit Kennzahlen und Balkendiagrammen

#### Prüfungsmodus

Der Prüfungsmodus in OpenOlat ist eine Kursfunktionalität, die es ermöglicht, Tests oder Prüfungen mit ganzen Kursen in geschütztem Modus während einer festgelegten Zeit durchzuführen. Prüfungen können dabei auf bestimmte Benutzergruppen eingeschränkt werden. Die Prüfungssicherheit kann mittels Beschränkungen auf IP-Adressen erhöht werden. Die Prüfung kann im Kiosk-Modus durchgeführt werden, wenn der Safe Exam Browser zwingend zur Prüfung benutzt werden soll.

#### Fragenpool

Der Fragenpool in OpenOlat ist eine Datenbank an einzelnen Testfragen, sogenannten Items, die in der Regel im QTI-Format vorliegen. Jedes Item enthält alle zugehörigen Informationen und Metadaten, die gemäß den Learning Objects Metadata erfasst und zusammengestellt werden.

### Betreuung, Kollaboration & Kommunikation

OpenOlat erlaubt durch die Rollen- und Rechtevergabe sowie die Gruppen die gezielte Kurs-, Gruppen- und Benutzerbetreuung. Soziale Werkzeuge wie Blogs, Foren, Wikis, Podcasts und die Dateidiskussion, Mail und Chat ermöglichen die Kommunikation und kollaborative Zusammenarbeit von OpenOlat-Nutzern. Gruppen können unabhängig von Kursen auch für Projektarbeiten verwendet und je nach Konfiguration auch von den Lernenden erstellt und verwendet werden. Klassen mit mehreren Kurszuweisungen können mit den Gruppen ebenfalls abgebildet werden.

#### Betreuung

Rollenzuweisungen in Gruppen und Kursen gestatten die Zuweisung von Teilnehmern zu Besitzern (Kurs) oder Betreuern (Gruppe und Kurs), die damit Zugang zum Bewertungswerkzeug und den Leistungsnachweisen erhalten. Während Besitzer immer vollen Zugang zu allen administrativen Werkzeugen der Ressource inklusive der Mitgliederverwaltung haben, haben Betreuer erst nach Veröffentlichung der Lernressource einen etwas eingeschränkten Zugang.
* Coachingwerkzeug: Betreuer erhalten eine Übersicht aller ihnen zugewiesenen Benutzer sowie Zugriff auf deren Leistungsnachweise in einem Werkzeug
* Lernressourcenansicht: Betreute Kurse
* Bewertungswerkzeug: damit werden Kursteilnehmer beurteilt und bewertet. Alle bewertbaren Kursbausteine (Test, SCORM, Aufgabe, Bewertung, Portfolioaufgabe, Checklisten) können hier manuell bewertet werden.
* Einschreibung: mit Hilfe des Kursbausteins Einschreibung kann die Teilnehmerzahl eines Kurses eingeschränkt werden, mit und ohne Warteliste
* Abonnement-Funktion für neue Beiträge z. B. in Wikis, ePortfolio, Dateidiskussion, Blogs
* Statistikwerkzeug

#### Kooperation

Neben dem Gruppensystem mit der optionalen Verknüpfung zu einem oder mehreren Kursen stehen innerhalb der Kurse verschiedene Kursbausteine zur Verfügung, die die kollaborative Zusammenarbeit gestatten.
* Gruppen mit verschiedenen Werkzeugen: Information, E-Mail, Gruppenkalender, Ordner, Gruppenchat, Wiki, virtueller Raum und ePortfolio
* Kursbausteine Wiki, Forum, Virtuelle Räume (vitero, OpenMeetings, BBB, Zoom und Virtuelles Klassenzimmer) und Themenvergabe
* Buddy List – Anzeige von Online-Kontakten aus Gruppen
* Dateiversionierung

#### Kommunikation

Zur Kontaktaufnahme stehen neben dem integrierten Mailsystem weitere Kommunikationsfunktionen zur Verfügung:
* Chat – OpenOlat, Kurs und Gruppe, mit Buddy List
* Abonnement-Funktion für neue Beiträge z. B. in Foren, Wikis, Blog, Ordner und Kalender
* Kursbausteine vitero virtual team room (kommerzielle Zusatzsoftware), Virtuelles Klassenzimmer, OpenMeetings und Teilnehmerliste als Galerie

### Personal Learning Environment

OpenOlat ermöglicht durch Rollen- und Gruppenzuweisungen, der Anwendung von Sichtbarkeits- und Zugangsregeln sowie der curricularen Benutzung des Lernressourcenkatalogs eine benutzerspezifische Darstellung von Kursen und der Lernplattform selbst. Das OpenOlat Portal ist die vom Benutzer personalisierbare Einstiegsseite in das LMS.

#### Lernen

Kurse und Aufgaben können im Erscheinungsbild, Inhalt sowie z. B. Abgabedaten an den einzelnen Benutzer angepasst werden. Sichtbarkeits- und Zugangsregeln erlauben, Zugang zu Kursbausteinen zeitabhängig, gruppenabhängig oder bewertungsabhängig zu gestalten. Mittels Expertenregeln können fein granulierte Zugangs- und Sichtbarkeitsregeln für Kurse und jeden einzelnen Kursbaustein erstellt werden.
* Abgabedatum von z. B. Portfolioaufgabe abhängig vom ersten Öffnen eines Kurses
* Einschreibung
* Leistungsnachweise
* Kurskalender für die Verwaltung von kursspezifischen Terminen
* Mitteilungsbaustein, um Benachrichtigungen für kursrelevante Ereignisse und Themen zu erstellen, mit automatischem Abonnement
* Präsenzunterricht möglich durch virtuelle Räume, benötigt keinen Zugangscode der Teilnehmer
* Notizfunktion in Kursen
* Curriculum: Kursauflistung im Katalog

#### Personalisierung

Für verschiedene Benutzergruppen können individuelle Seiten oder Kurse als Startseite konfiguriert werden. Dabei lassen sich Benutzer nach Rollen oder Attributen, wie Studienfach oder Institution, gruppieren. Zusätzlich hat jeder Benutzer die Möglichkeit, seine persönliche Startseite frei zu wählen. Eine weitere Personalisierung ist durch persönliche Werkzeuge und Einstellungen möglich. Diese befinden sich im ausklappbaren persönlichen Menü.
* Konfiguration: Persönliches Profil und öffentliches Profil (Visitenkarte) bearbeiten (inkl. Bild), Systemeinstellungen wie z. B. Sprache und Schriftgröße festlegen, Passwort ändern, Chat-Einstellungen festlegen, z. B. Sichtbarkeit
* persönlicher Kalender, in den OpenOlat-interne sowie externe Kalender wie z. B. Google oder Outlook-Kalender importiert werden können
* Abonnement-Verwaltung aller OpenOlat-Abos. Können als RSS-Feed in gängigen Newsreadern angezeigt werden
* OpenOlat-Bookmarks
* gesammelte Notizen aus Kursen
* Anzeige aller Leistungsnachweise
* Mailbox
* ePortfolio-Modul: Portfolioaufgaben aus Kursen und private Portfoliomappen werden hier bearbeitet und verwaltet. Freigeschaltete Portfolios anderer Benutzer werden ebenfalls hier betrachtet und kommentiert

### Authoring – Kurseditor, CP-Editor, Testeditor

OpenOlat verfügt über einen eigenen Autorenbereich, in dem Kurse, Lernressourcen und Kursbausteine erstellt werden, um daraus E-Learning-Kurse zusammenzustellen.
OpenOlat verfügt über eigenen Content Packaging und Test-Editoren, mit dem IMS Content Packages und QTI-Tests erstellt werden können. OpenOlat unterstützt dafür den IMS LTI Standard in der Version 1.3 sowohl für Plattform- wie auch für Tool-Aspekte. Das bedeutet, dass nicht nur externe Tools in einen OpenOlat Kurs eingebunden werden können, sondern dass umgekehrt auch ganze OpenOlat Kurse oder Gruppen in anderen Systeme integriert werden können.

## Spezifikation

OpenOlat ist in Java auf der Basis des Java-Servlet-Interfaces geschrieben und läuft damit auf Windows, macOS und Linux, üblicherweise in einer Tomcat-Installation. Das LMS wird unter einer Apache-2.0-Open-Source-Lizenz entwickelt und vertrieben. OpenOlat unterstützt UTF-8, und gängige Datenbanksysteme wie MySQL oder Postgres. Zur Sicherheit aller benutzer- und kursspezifischen Daten ist OpenOlat über eine SSL-Verschlüsselung geschützt.
OpenOlat verwendet historisch bedingt ein eigenes komponentenbasiertes MVC-Applikationsframework. Für die Datenbankabstraktion wird Hibernate, für die Konfiguration Spring, für den Buildprozess Maven und als Codeverwaltungssystem Mercurial verwendet. Die Benutzerschnittstelle ist in HTML/CSS/JavaScript realisiert, wobei mit einem Ajax Mechanismus nur diejenigen Bereiche des Bildschirms sich aktualisieren, welche sich tatsächlich geändert haben.