113 lines
4.2 KiB
Plaintext
113 lines
4.2 KiB
Plaintext
= Gruppenbildung
|
|
|
|
Das System bietet eine zentrale Oberfläche zum erstellen und verwalten von Gruppen.
|
|
Diese kann von anderen Systemen eingebunden werden, oder von Studierenden direkt aufgerufen werden.
|
|
Außerdem wird eine API bereitgestellt für die Nutzung in anderen Systemen.
|
|
Man kann Private und Öffentliche Gruppen erstellen.
|
|
Private Gruppen kann man nur über einen Beitrittslink beitreten.
|
|
Öffentliche Gruppen kann man ohne diesen beitreten.
|
|
Man kann nach Öffentlichen Gruppen über eine Suchfunktion suchen.
|
|
|
|
== Stand
|
|
|
|
=== Probleme
|
|
|
|
* Momentan ist kein Controller getestet
|
|
* Das Styling ist inkonsistent und skaliert nicht gut auf kleineren screens
|
|
* Schlecht dokumentiert und Arc42 nicht aktuell
|
|
* Integrationen nicht implementiert
|
|
* Gruppenoptionen nicht implementiert
|
|
* Snapshotting nicht implementiert
|
|
* Caching funktioniert, aber teilweise nicht konsequent verwendet
|
|
* Gruppenbeschreibung mit markup nicht implementiert
|
|
* Invitelink kann nicht regeneriert werden
|
|
* Seit Implementierung eines Caches ist die API kaputt
|
|
|
|
=== Fertig
|
|
|
|
* Fast die komplette Logik + Templates + Controller überholt
|
|
* Verwendung eines Caches anstatt vieler Datenbankanfragen
|
|
* UI: Templates mit Fragmenten und auslagertem styling vereinfacht, einige Seiten zusammengefasst
|
|
* Services komplett umstrukturiert, ergeben inhaltlich mehr Sinn und sind kleiner
|
|
* Konsequenteres Logging, aspektorientiertes Logging
|
|
* Aktivere Gruppenobjekte mit mehr Validierung
|
|
* Extratabelle für Invitelinks entfernt, Datenbank vereinfacht
|
|
* Man kann Änderungen an Gruppen nachvollziehen mit Zeitstempeln und einer Übersichtsseite
|
|
* Gruppen und Teilnehmerlisten können exportiert werden
|
|
|
|
=== Heroku
|
|
|
|
Die letzte Version der Anwendung ist unter gruppenfindung.herokuapp.com zu erreichen.
|
|
Es existieren zwei Defaultuser:
|
|
|
|
* Username: orga, Passwort: orga
|
|
* Username: studentin, Passwort: studentin
|
|
|
|
== Ursprüngliche Readme
|
|
|
|
=== Problem
|
|
|
|
Die meisten Teilsysteme von MOPS arbeiten mit Gruppierungen von Studenten: Materialien für Lerngruppen/Veranstaltungen, Gruppenportfolios, Gruppenabstimmungen etc.
|
|
Jedes System müsste dementsprechend eine Gruppenverwaltung implementieren, was zeitaufwändig ist.
|
|
|
|
=== Ziele
|
|
|
|
Die Gruppenverwaltung wird bieten:
|
|
|
|
* Eine Seite zum erstellen von neuen Gruppen
|
|
* Eine Seite zum verwalten von bestehenden Gruppen
|
|
* Eine Übersicht über belegte Gruppen
|
|
* Detailansicht für Gruppen
|
|
* Eine API zum anfragen von Gruppendaten
|
|
|
|
=== Details
|
|
|
|
Über *Gruppen*:
|
|
|
|
* Es gibt private und öffentliche Gruppen
|
|
** Privat: Beitritt über Einladungslink
|
|
** Öffentlich: Beitritt über Liste
|
|
* Jede Gruppe kann einer Veranstalung zugeordnet werden (oder ist eine Veranstaltung)
|
|
* Gruppenteilnehmer können Administratorrollen innerhalb der Gruppe einnehmen
|
|
* Wenn man eine Gruppe erstellt, wird man dieser direkt hinzugefügt und als Admin registriert (unabhängig davon ob es eine öffentliche oder private Gruppe ist)
|
|
* Gruppen verschwinden, wenn sie keine Mitglieder mehr haben
|
|
|
|
Über *Admin* (interne Rolle):
|
|
|
|
* Admin's können anderen Gruppenmitgliedern Adminrechte geben
|
|
* Admin's können den Beitrittslink für private Guppen erstellen
|
|
* Admin's können andere Mitglieder aus der Gruppe entfernen
|
|
|
|
Über *Mitglied* (interne Rolle):
|
|
|
|
* Mitglieder haben keine Rechte in der Gruppe.
|
|
Sie können nur eigenständig aus der Gruppe austreten.
|
|
|
|
Für *Organisatoren* (keycloak Rolle):
|
|
|
|
* Beliebige Gruppen können erstellt/gelöscht/bearbeitet werden
|
|
* Teilnehmerlisten können per .csv importiert werden
|
|
* Monitoringfunktionen
|
|
|
|
Für *Studenten* (keycloak Rolle) :
|
|
|
|
* Übersicht mit allen belegten Gruppen
|
|
* Übersicht mit allen öffentlichen Gruppen
|
|
* Gruppen können erstellt werden
|
|
* Öffentlichen Gruppen kann beigetreten werden
|
|
* Gruppen, in welchen der Student Admin ist, können verwaltet werden
|
|
|
|
Über die *Schnittstelle*:
|
|
|
|
* Alle Gruppen können angefragt werden, zum Datenabgleich
|
|
* Eine Liste von Gruppen eines Studenten kann angefragt werden (evtl.)
|
|
* Eine einzelne Gruppe kann per ID angefragt werden (evtl.)
|
|
* etc?
|
|
|
|
=== Verwendung
|
|
|
|
Die Anwendung kann mit `docker-compse up` im Wurzelverzeichnis gestartet werden, eine API-Doku befindet sich im Dokumentation-Ordner (das swagger-zip).
|
|
|
|
Der Import über CSV erfolgt nach dem Format `id,givenname,familyname,email`
|
|
|