Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lernplattformen #326

Closed
frostieDE opened this issue Dec 29, 2024 · 14 comments
Closed

Lernplattformen #326

frostieDE opened this issue Dec 29, 2024 · 14 comments
Assignees
Labels

Comments

@frostieDE
Copy link

Wenn ich das richtig sehe, besteht aktuell noch keine Möglichkeit, Lernplattformen über die REST-Schnittstelle abzufragen (bitte korrigieren, falls falsch)

Da ich gerne Zugänge (päd. Netzerk/MS365, Bildungslogin etc.) gerne in der Schild-Datenbank ablegen möchte, müsste ich (a) die Lernplattformen auslesen und erstellen/bearbeiten können und (b) die Zugänge abrufen und erstellen/bearbeiten können.

Wie sieht die Planung in dieser Hinsicht aus? Ich könnte mir vorstellen, dass auch andere Tools davon profitieren würden :-)

@FPfotenhauer FPfotenhauer self-assigned this Dec 30, 2024
@FPfotenhauer
Copy link
Contributor

Die Endpunkte für den WebClient sind hier für 2025 geplant. Allerdings liegt hier noch keine konkrete Planung vor.
Falls du die Endpunkte früher zur Verfügung haben willst, könntest du dich mit konkreten Vorschlägen für die DATA-Klassen an das Team wenden.

Hinzu kommt auch noch die "alte" Diskussion über eine Lernplattform-Schnittstelle, die wir auch gerne irgendwann angehen wollen/müssen. Hier möchten wir aber gerne auf einen gemeinsamen Standard für alle setzen. Da wurde ja schon einmal "SchulconneX" in den Ring geworden. Dazu erfahre ich aber erst im Februar mehr...

@kroerig
Copy link
Contributor

kroerig commented Dec 30, 2024

Schulconnex stammt ja aus Niedersachsen.
Ein schnelles Google hat mir jetzt nur einen Dienst präsentiert, der diese Schnittstelle unterstützt.

Die mir bekannten Systeme LogoDidact und MNSPro setzen auf klassische CSV Dateien für die Benutzerimporte. Denen müsste man also erstmal die Schnittstelle schmackhaft machen.

Und dann kommt wieder die Frage: Wie kommen diese Plattformen an den SVWS dran?

@FPfotenhauer
Copy link
Contributor

FPfotenhauer commented Dec 30, 2024

Ist denn Schulconnex nur in diese Richtung gedacht? IServ wollte auch gerne Schulconnex machen. Mit LogoDidact und MNSPro habe ich auch auf der Didacta gesprochen. Das wir von den CSV-Dateien weg wollen, da waren sich (ist auch kein Wunder) alle einig. In anderen Bundesländern wird Schulconnex mittlerweile auch gehandelt, aber es fehlen mir noch klare Aussagen dazu.

@frostieDE
Copy link
Author

Netman (H+H) nutzt auch noch CSV-Dateien. Der Bildungslogin ebenfalls. Bei normalen Zugangsdaten spricht ja auch erst einmal nichts gegen CSV (zumindest bei der Hand voll an Infos, die übermittelt werden müssen - Vorname, Nachname, E-Mail-Adresse/Benutzername, [optional: Passwort], Klasse).

Anyway - ich habe mich gestern mal ein bisschen in den Server eingearbeitet und ein bisschen Code zum Abrufen von Lernplattformen gebastelt (unfertig).

Eine Sache, auf die ich dabei gestoßen bin: Wenn ich das richtig überblicke, benötigen wir zusätzliche Benutzerrechte. Aktuell tut es (zum Testen) das Recht KEINE. Vielleicht schaffe ich in den Ferien, einen PR fertig zu machen 😉

@FPfotenhauer
Copy link
Contributor

Man könnte das an die Rechte "Daten für XML-Schnittstelle" koppeln.
Das könnte man dann später in "Lernplattform-Schnittstelle" umbenennen.

Aber danke erstmal!!!

@frostieDE
Copy link
Author

Alles klar, dann nutze ich erstmal diese Benutzerkompetenz 😄

@kroerig
Copy link
Contributor

kroerig commented Dec 30, 2024

Ist denn Schulconnex nur in diese Richtung gedacht? IServ wollte auch gerne Schulconnex machen. Mit LogoDidact und MNSPro habe ich auch auf der Didacta gesprochen. Das wir von den CSV-Dateien weg wollen, da waren sich (ist auch kein Wunder) alle einig. In anderen Bundesländern wird Schulconnex mittlerweile auch gehandelt, aber es fehlen mir noch klare Aussagen dazu.

Die offenen Schnittstelle ist ja ein Nebenprodukt von moin.schule. Einem zentralen IAM mit SSO Funktion.

Die Schulverwaltungsprogramme übertragen die Daten an diese zentrale Plattform und dort können andere Dienste ansetzen. Dazu braucht es dann Connectoren.
Univention hat das beschrieben. Die können Schülerdaten von Moin.Schule übernehmen.

https://www.univention.de/blog-de/2023/10/moin-schule-ucsschool-nutzerimport/

@FPfotenhauer
Copy link
Contributor

Leider haben wir kein zentrales IDM in NRW. :-(

@kroerig
Copy link
Contributor

kroerig commented Jan 2, 2025

Frohes Neues Jahr.

D.h. man könnte zwar das Datenformat- und Struktur übernehmen, es bliebe aber bei einem manuellen Import im Zielsystem. Um aber wirklich automatisisert mit der API arbeiten zu können, müssten für die div. Zielsystem Connectoren existieren und die SVWS Instanz müsste über das Internet erreichbar sein. Ob man das wirklich so will und kann?

@ervinkurbegovic
Copy link

Hallo zusammen,

vielen Dank nochmals für das offene, angenehme und sehr informative Gespräch!

In Münster setzen wir IServ an etwa 80 Schulen bzw. Standorten ein. Die Nutzung der Schild-NRW3-API hat uns besonders beeindruckt, da sie eine nahezu vollständige Automatisierung der Datenübertragung zu IServ ermöglicht. Aktuell nutzen wir verschiedene API-Endpunkte, um mit Python auf dem IServ eine CSV-Datei zu erstellen. Diese Datei importieren wir dann über das IServ-Backend (root-Bash) mithilfe vorhandener IServ-Befehle und eines Bash-Skripts.

Wunsch/Anforderung:
Derzeit müssen wir mehrere API-Endpunkte iterativ abfragen, was eine gewisse Herausforderung darstellt und zu Performance-Einbußen führen kann. Daher wäre es sehr hilfreich, wenn ein neuer API-Endpunkt bereitgestellt werden könnte, der alle relevanten Daten in einer einzigen Anfrage liefert. Dies würde die Arbeit für uns und andere Entwickler erheblich vereinfachen und die Datenübertragung zu IServ deutlich effizienter machen.

Aktuelle Struktur der generierten CSV-Dateien für IServ:

Schüler*innen-CSV-Datei:
Felder: id (Schild-ID), nachname, vorname, klasse, kurse, passwort (Geburtsdatum im englischen Format)

Beispiel:
6092,Mustermann,Max,06e1,"Jg07-KA-1,Jg07-MA-C-1,Jahrgang 07",20140422
6139,Schmidt Meier,Silvia,05e2,"Jg05-MC-B-1,Jg05-PPL-2,Jahrgang 05",20120915

Lehrkräfte-CSV-Datei:
Felder: id (Schild-ID), nachname, vorname, lehrerkuerzel, kurse, passwort (automatisierte Generierung in Python)

Beispiel:
213,Bramhaus,Robert,B,EF-PH-EK3,MgQHX49z8l
171,Cosby,Bill,CY,"Q2-D-EK3,Q2-SW-ZB4,Q2-SW-ZK3-Zusatz,Q2-SW-ZK3,EF-SW-GK4,Q2-SW-ZK1,EF-SW-GK1,EF-D-GK5,Q1-D-GK3,EF-SW-GK2,Q1-D-GK1,Q2-SW-ZK2,EF-D-GK4,Q2-D-GK1,Q1-SW-GK2,Q2-SW-GK1,Q1-SW-GK1,Q2-D-GK4,Q1-D-GK4,Q2-SW-GK2,Klasse 05e3,",CKU3utg5fD

Die CSV-Datei für Erziehungsberechtigte würden wir vorerst nicht berücksichtigen und zu einem späteren Zeitpunkt definieren.

Eventuell werden nochweitere Daten benötigt, daher würde ich in den kommenden Tagen intern Rücksprache halten und die exemplarische CSV-Datei entsprechend updaten.

Vielen Dank für Ihre/Eure wertvolle Arbeit!

Ervin Kurbegovic | citeq (Stadt Münster)

@ervinkurbegovic
Copy link

Hallo zusammen,

vielen Dank nochmals für das offene, angenehme und sehr informative Gespräch!

In Münster setzen wir IServ an etwa 80 Schulen bzw. Standorten ein. Die Nutzung der Schild-NRW3-API hat uns besonders beeindruckt, da sie eine nahezu vollständige Automatisierung der Datenübertragung zu IServ ermöglicht. Aktuell nutzen wir verschiedene API-Endpunkte, um mit Python auf dem IServ eine CSV-Datei zu erstellen. Diese Datei importieren wir dann über das IServ-Backend (root-Bash) mithilfe vorhandener IServ-Befehle und eines Bash-Skripts.

Wunsch/Anforderung: Derzeit müssen wir mehrere API-Endpunkte iterativ abfragen, was eine gewisse Herausforderung darstellt und zu Performance-Einbußen führen kann. Daher wäre es sehr hilfreich, wenn ein neuer API-Endpunkt bereitgestellt werden könnte, der alle relevanten Daten in einer einzigen Anfrage liefert. Dies würde die Arbeit für uns und andere Entwickler erheblich vereinfachen und die Datenübertragung zu IServ deutlich effizienter machen.

Aktuelle Struktur der generierten CSV-Dateien für IServ:

Schüler*innen-CSV-Datei: Felder: id (Schild-ID), nachname, vorname, klasse, kurse, passwort (Geburtsdatum im englischen Format)

Beispiel: 6092,Mustermann,Max,06e1,"Jg07-KA-1,Jg07-MA-C-1,Jahrgang 07",20140422 6139,Schmidt Meier,Silvia,05e2,"Jg05-MC-B-1,Jg05-PPL-2,Jahrgang 05",20120915

Lehrkräfte-CSV-Datei: Felder: id (Schild-ID), nachname, vorname, lehrerkuerzel, kurse, passwort (automatisierte Generierung in Python)

Beispiel: 213,Bramhaus,Robert,B,EF-PH-EK3,MgQHX49z8l 171,Cosby,Bill,CY,"Q2-D-EK3,Q2-SW-ZB4,Q2-SW-ZK3-Zusatz,Q2-SW-ZK3,EF-SW-GK4,Q2-SW-ZK1,EF-SW-GK1,EF-D-GK5,Q1-D-GK3,EF-SW-GK2,Q1-D-GK1,Q2-SW-ZK2,EF-D-GK4,Q2-D-GK1,Q1-SW-GK2,Q2-SW-GK1,Q1-SW-GK1,Q2-D-GK4,Q1-D-GK4,Q2-SW-GK2,Klasse 05e3,",CKU3utg5fD

Die CSV-Datei für Erziehungsberechtigte würden wir vorerst nicht berücksichtigen und zu einem späteren Zeitpunkt definieren.

Eventuell werden nochweitere Daten benötigt, daher würde ich in den kommenden Tagen intern Rücksprache halten und die exemplarische CSV-Datei entsprechend updaten.

Vielen Dank für Ihre/Eure wertvolle Arbeit!

Ervin Kurbegovic | citeq (Stadt Münster)

Nachtrag zu Kursen, die mit einer Zahl beginnen:
Wir ergänzen den Kursnamen um den Jahrgang (Präfix: Jg), da IServ Kurse, die mit einer Zahl beginnen, nicht anlegt. Es wäre daher wünschenswert, die Möglichkeit zu schaffen, in Schild ein Präfix und/oder Suffix für solche Kursnamen zu definieren.

@kroerig
Copy link
Contributor

kroerig commented Jan 9, 2025

Derzeit müssen wir mehrere API-Endpunkte iterativ abfragen

Das ist in den meisten Fällen so, denn jedes System braucht andere Daten (oder erwartet sie in einer anderen Reihenfolge oder Formatierung). API Endpunkte sollte Daten nicht redundant ausliefern, wenn diese Daten bereits über bestehende Endpunkte verfügbar sind. Dann muss man sich diese - wie Sie und ich es gerade machen - selbst zusammenstellen.

BTW: Aus meiner Sicht, sollte ein Schulverwaltungprogramm die Stammdaten verwalten, Zugangsdaten aber gehören da nicht rein. Die generiert das Zielsystem und stellt sie dem Anwender auf geeignete Art zur Verfügung.

D.h. im SVWS ist hinterlegt, ob ein Schüler/ Lehrer Zugriff zu einer bestimmten Plattform bekommen soll, aber auch nicht mehr.
So wären es also i.d.R. bis zu drei Abfragen, die man machen müsste:

  • Wer ist für diese Plattform berechtigt?
  • Stammdatenabfrage
  • Zusatzdaten

Hilfreicher fände ich es hier, wenn man den API-Endpunkten Filterkriterien mitgeben könnte, sodass man das JSON nicht im Nachgang noch filtern muss.

Wobei der Begriff "Lernplattform" für mich etwas anderes bedeutet: Ich verstehe darunter Systeme wie Moodle, ILIAS, Anton. Und da macht es für mich auch Sinn zu verwalten, wer diese benutzen darf. Aber bei den "Schul- oder Systemplattformen" wie iServ, LogoDidact, MNS(Cloud)pro (die Reihenfolge ist Absicht ;-)) dürfte die Frage 1 i.d.R. mit "alle" zu beantworten sein.

@T-Hagel-SK
Copy link

BTW: Aus meiner Sicht, sollte ein Schulverwaltungprogramm die Stammdaten verwalten, Zugangsdaten aber gehören da nicht rein. Die generiert das Zielsystem und stellt sie dem Anwender auf geeignete Art zur Verfügung.

Das kommt darauf an. Wenn man Schild auf die Stammdatenverwaltung beschränken möchte und aus Schild2 gewonnenes Potential verschenken möchte, dann wohl... Warum aber sollte man die Vorteile, die Schild als zentrale Schulverwaltungsprogramm mit sich bringt, nicht auch die rudimentäre Benutzerverwaltung von externen Systemen wie Lernplattformen verwenden ? In Schild2 und 3 sind ja schon die entsprechenden Tabellen vorhanden. In Schild3 als "CredentialsLernplattformen", ja sogar inkl. Passwortfeld... Ich nehme an, dass es sich dabei um Initialpasswörter handelt, wie sie z.B. für den Export nach Logineo aus Schild erzeugt werden. Warum sollte man als Schul-Admin (weiterhin) diese Informationen zusätzlich an anderen Stellen (Excel?) verwalten ? Zumal sich mit Schild2 und 3 Schüler, Lehrer und sogar sonstige Personen(gruppen) in Schild gleichermaßen verwalten lassen.

Wenn man diese Tabelle noch um ein Zusatzfeld (z.B. "Funktion") erweitert und diese Funktionen individuell mit Werten füllen (eigene Plattformfunktions-Tabelle) könnte, ließen sich darüber bequem die Berechtigungen für Lernplattform- und externe Systeme nutzen. Diese könnten dann auch wiederum genutzt werden, um systemspezifische Rechte/Rollen scriptbasiert automatisiert zuzuweisen.

So ließen sich z.B. mit jenem zusätlichen Parameter mehrere Benutzer zu einer systemspezifischen Benutzergruppe oder Bereichen zusammenfassen oder vom Standard abweichende Berechtigungen zuweisen. Z.B. um in bestimmten Systemen nur Lese-Rechte einzuräumen, oder Lehrer mit eingeschränkten Adminrechten mit Moderatoren-Rechten auszustatten, etc. Auch das Löschen von Benutzern ließe sich über solche Parameter steuern, Z.B. für den Fall von Gäste- oder Prüfungkonten (IHK-Prüfungen an BKs zB), die dann eine Laufzeit von x Tagen haben. Nach jenen x Tagen wird das entsprechende Konto automatisch beim jeweiligen Dienst (Iserv, UCS, Programm, Plattform, etc.) gelöscht.

Mit einer zentralen Verwaltung über Schild und entsprechenden Exporten lassen sich so Benutzerkonten zentral pflegen / löschen, ohne, dass man als Admin manuell durch die einzlenen Systeme fliegen muss, um da manuell aufzuräumen oder klassenweise hochzustufen. Außerdem ließen sich so über Schild auch Abfragen über genutzte Lizenzen organisieren und im Bedarfsfall mit den Anbietern der externen Dienste abgleichen.

In Köln nutzen die städtischen Kölner Schulen nicht IServ, sondern Univention UCS. Externe Anwendungen die sich per OpenID authentifizieren lassen, wie etwa Moodle, NectCloud, O365, Messenger auf Stashcatbasis, SchoolManager Online, EduPage, etc., aber auch die schulinterne Infrastruktur (lokale Fileserverablage, WLAN) lassen sich mit diesem UCS-Konto verbinden. Die Benutzerverwaltung läuft über SchildZentral, Für die Nutzer bedeutet das SingleSignOn in den möglichen Systemen und Passwortverwaltung über UCS.

Für die Schuladmins bedeutet das eine Menge Zeitersparnis. Ich kann mich da an meine liebe Zeit als Schuladmin erinnern, wenn es galt die 3.600 Schüler einer Berufsschule nach Schuljahresabschluss klassenweise im pädagogigschen Netzwerk hochzustufen, neu einzurichten oder nach Schulabgang zu entfernen. Das gleiche galt dann für die Kollegen, die Moodle bereitgestellt hatten.... Arbeit, die heute mit der schieren Anzahl an Anwendungen kaum noch alleine zu bewältigen, wenn man nebenbei noch unterrichtet.

Ich nehme an, dass das bei IServ ähnlich funktioniert.

Daher sollte sich die Frage nicht nur gedanklich auf Lernplattformen beschränken, auch wenn die Datenbanktabelle nun so heißt.
Ideal wäre es, wenn diese Verwaltungsaufgabe in einem eigenen Menüpunkt für alle Nutzer ermöglicht würde. Derzeit muss man ja noch für jede Benutzergruppe in unterschiedlichen Eingabeformularen arbeiten. Personengruppen finde ich unter Kataloge, Lehrer und Schüler in eigenen Menüs. Der Gruppenprozess für "Lernplattformen" gilt z.B. nur für Schüler. Nicht aber für Lehrer oder Personengruppen.

Abgesehen davon würde ich die alte Frage, die hier auch zwischenzeitlich auftauchte, noch mal aufgreifen:
Ist es nun geplant, den SVWS-Server von und/oder nach außen (Internet) erreichbar zu machen oder nicht ?
Wenn ja, wie sehen die Sicherheitsmaßnahmen aus, den SVWS-Server gegen Angriffe von außen zu schützen ?

Schöne Grüße
Thomas Hagel

Stadt Köln
12/Digitalisierung und Informationstechnik
122/11 - Fachverfahren Schulen und Kitas

@FPfotenhauer
Copy link
Contributor

#345
#346

Ich habe das Issue in zwei konkretere Issues aufgeteilt.
Einmal Verwaltung von Lernplattformen, was @frostieDE meinte.
Und zum anderen der Sync, was ich eher meinte.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants