Webuntis Api support
Mir ist bekannt, dass dieses Feature bereits vorgeschlagen wurde. ua auch auf Gitlab
Eines der genannten Probleme war das Limit der REST api für Dienste wie Sharezone. Möglich wäre: Zunächst nur Studenpläne zu importieren(nur 1 mal pro woche manuell ), anstatt die Vertretungen ebenfalls zu laden. Zusätzlich sollten Anfragen vom Nutzergerät gesendet werden: https://untis-sr.ch/wp-content/uploads/2019/11/2018-09-20-WebUntis_JSON_RPC_API.pdf sollte wenn auch begrenzt weiterhin funktionieren.
Ich habe selbst schon eimal versucht eine Version von Untis mobile zu erstellen, was aber eher mäßig funktioniert hat und verstehe daher die Zurückhaltung um das Feature.
Trotzdem wäre ein Support für Untis in der Sharezone app für viele Schulen die das System bereits nutzen extrem hilfreich!
Was Sicherheitsbedenken angeht, denke ich nicht, dass Untis der App Sharezone (oder umgekehrt) wirklich schadet, da die beiden Dienste weiterhin vollkommen unabhängig agieren könnten.
Kleines Concept:
Hey @Protonosgit,
wow, sehr, sehr cool, dass dir so viel Mühe gegeben hast, dir erst noch das GitLab durchzulesen, zu recherchieren und auch noch in Figma einen UI-Prototyp zu machen ❤️
Zu deinem Punkt, dass man erst einmal den Vertretungsplan von Untis weglässt und nur den Stundenplan importiert, ist definitiv eine sehr gute Idee und könnte sehr viel bei der Einrichtung von Sharezone ersparen, dass man Sharezone runterlädt, es mit Untis verbindet und fast alles bereits eingerichtet ist:
- Erstellung der Schulklasse
- Erstellung der Kurse
- Anpassen der Stundenzeiten im Stundenplan
- Übernehmen der Stunden im Stundenplan
- (Alle Termine übernehmen, auf die man Zugriff hat)
Jedoch ist das größte Problem mehr in der technischen Umsetzung. Denn es wird nicht so trivial sein, die Untis Kurse zu Sharezone zu mappen und auch die Stunden zu importieren, weil Untis und Sharezone zwei verschiedene sind, wo es auch so ist, dass es in Untis einige kleine Features gibt, die es in Sharezone nicht gibt.
Aktuell ist unser Fokus erst einmal auf Sharezone Plus (#557), um Sharezone auch weiterhin finanzieren zu können. Aber danach wäre etwas Zeit, zu mindestens mal zu evaluieren, ob und wie gut so etwas möglich wäre.
Wenn du Zeit und Lust hast, kannst du es dabei auch gerne unterstützen. Eine große Hilfe wäre, wenn man sich genauer die APIs von Untis anschaut und auch selber mal ausprobiert (falls du einen eigenen Untis-Login hast). Wir müssten an einen Punkt kommen, wo wir die Daten in einem JSON-Format haben, mit welchem man einfach Sharezone Kurse/Schulklassen und den Stundenplan erstellen könnte. Damit könnten wir sehen, welche Daten man tatsächlich von Untis zur Verfügung stehen und es ließe sich genauer abschätzen, was alles für das Feature benötigt wird.
Ich habe bereits versucht meinen eigenen untis Klon zu machen, bin aber gescheitert (etwas zu groß für mein erstes react native Projekt). Trotzdem könnte der Teil noch nützlich sein: https://github.com/Protonosgit/Nova-untis/blob/main/Screens/components/UntisApi.js (nur die network requests). Dafür haben wir https://www.figma.com/file/5cQFwK58zXgX2oLob9NN5y/Project-Nova-Untis?type=whiteboard&t=wag5ddkDr7LBYI9a-1 zur Orientierung gemacht, ist aber etwas eingestaubt. Ansonsten hätte ich noch logs von entschlüsselten https requests der android app.
Ich möchte aber darauf hinweisen, dass manche Schulen sehr strenge Regeln haben, was Schülerberechtigungen angeht (abfragbar per api) und manche Requests leer zurückkommen. War auch bei meinen Daten der Fall!
Helpful package for this feature: https://pub.dev/packages/dart_untis_mobile