Software Challenge : Quasum API

API

Die API kann folgendes:

  • Tickets erstellen und bearbeiten
  • Kommentare zu Tickets erstellen
  • Daten von Tickets abrufen
  • Daten von Kommentaren zu Tickets abrufen
  • Benutzer erstellen und bearbeiten
  • Daten von Benutzern abrufen

API User

Die API kann verwendet werden, wenn man sich als Quassum-User authentifiziert. Damit die Schueler keine eMails von Quassum bekommen und Schuelern keine Tickets (als Zustaendiger) zugewiesen werden koennen, gibt es die Rolle "API-User". Ein API-User kann alles, was ein normaler Quassum mit den Rechten "Kommentieren, Bearbeiten" kann (fuer ein bestimmtes Projekt). Ein API-User bekommt keine Mails von Quassum.

Dadurch, dass wir die Anmeldedaten fuer den API-User nur intern im Wettkampfsystem halten, hat ein API-User nicht die Moeglichkeit, sich direkt bei Quassum anzumelden (auch wenn das moeglich waere, wenn er die Anmeldedaten haette). Wettkampfsystem

Der Rest der benoetigten Funktionen wird direkt im Wettkampfsystem implementiert, welches mit Quassum ueber die API kommuniziert.

Fuer alle Schueler wird automatisch ueber die API ein API-User in Quassum angelegt.

Fuer Betreuer wird ebenfalls ein normaler Quassum-User ueber die API angelegt.

Anzeigen von Tickets

Ein Schueler kann eine Liste aller offenen Tickets anzeigen lassen.

Erstellen von Tickets

Ein Schueler kann ein neues Ticket erstellen. Er bekommt dafuer direkt im Wettkampfsystem eine Eingabemaske mit folgenden Feldern:

  • Titel
  • Beschreibung
  • Typ

Die Bedeutung der Felder entspricht der in Quassum.

Im Wettkampf-System wird das Ticket dann noch dem Betreuer des Schuelers (ermittelbar ueber das Team) zugewiesen und diese Daten an Quassum gesendet.

Bearbeiten von Tickets

Ein Schueler kann alle Tickets die von ihm oder von Schuelern seines Teams erstellt wurden bearbeiten. Dafuer bekommt der die gleiche Maske wie beim Erstellen eines Tickets

Kommentieren von Tickets

Ein Schueler kann zu jedem Ticket einen Kommentar erstellen. Auch dafuer gibt es direkt im Wettkampfsystem eine entsprechende Maske (mit einem Feld fuer den Kommentartext).

Erstellen der Schueler-Accounts

Wenn sich ein Schueler am Wettkampf-System registriert muss ueber die API auch ein API-User bei Quassum fuer diesen Schueler angelegt werden. Als Anmeldedaten wird die eMail-Adresse sowie ein intern im Wettkampf-System generiertes und gespeichertes Passwort verwendet. Dieses Passwort darf dem Schueler nicht zugaenglich sein, damit er sich nicht direkt bei Quassum anmelden kann.

Das Wettkampf-System kann Quassum-Nutzer ueber die eMail-Adresse den Schueler-Accounts zuordnen.

Erstellen der Betreuer-Accounts

Bei Anmeldung der Betreuer wird ueber die API ein neuer "normaler" Quassum-User angelegt und dem Projekt zugewiesen. Im Gegensatz zum Schueler bekommt der Betreuer seine Anmeldedaten und kann sich direkt bei Quassum anmelden.

Kommunikation mit Quassum

Saemtliche Schreiboperationen auf Tickets und Kommentaren sowie das Anlegen neuer Benutzer werden direkt ueber die API an Quassum weitergeleitet. Fuer die reine Anzeige von Ticketdaten sollte das Wettkampfsystem einen lokalen Cache vorhalten und nur Anfragen an Quassum schicken, wenn die benoetigten Daten nicht im Cache vorhanden sind. Das Wettkampfsystem erhaelt von Quassum eine Benachrichtigung, wenn sich bestimmte Daten geaendert haben und kann dann die gecachte Version invalidieren und bei der naechsten Anfrage der Daten die neue Version von Quassum abfragen.

Die Last fuer das Quassum-System ist moeglichst minimal zu halten.