Datenquellen

Die App greift auf verschiedene Datenquellen zu. Die Daten liegen nicht nur auf verschiedenen Servern, sondern auch in verschiedenen Formaten vor. Jede Quelle mit ihren jeweiligen Eigenarten wird in den folgenden Abschnitten dokumentiert.

Vorlesungen

Die Vorlesungen der DHBW Mosbach (im folgenden: DHBW) stehen auf einem Server der DHBW zur Verfügung. Es ist zum Glück nicht notwendig, bei Veränderungen an der Kursstruktur, wie dem Anlegen eines neuen Kurses, die App zu aktualisieren. Dies ist darin begründet, dass der Server eine einer Verzeichnisauflistung ähnliche Datei unter http://ics.mosbach.dhbw.de/ics/calendars.list zur Verfügung stellt. In dieser Datei ist pro Zeile zuerst der Kursname und dann mit einem Semikolon getrennt die URL zur eigentlichen ics-Datei aufgelistet.

Die ics-Dateien der DHBW befolgen nicht den iCalendar Standard. Dies stellt sich insofern dar, als dass laut Standard jeder Termin einen global (im Sinne von weltweit) eindeutige Kennzeichnung besitzen soll. Dies ist jedoch bei der DHBW nicht der Fall. Termine die zum gleichen Startpunkt starten besitzen dieselbe Kennzeichnung. Daher muss bei der Auswahl einer Bibliothek genau darauf geachtet werden, wie die Bibliothek intern die Termine verarbeitet und ob alle Termine nach der Verarbeitung noch existieren.

Außerdem sind die Dateien nicht direkt nach einer Änderung verfügbar. Stattdessen generiert das Planungstool der DHBW Textdateien, die von einem PHP-Script in ics-Dateien umgewandelt werden. Diese Konvertierung findet sofort statt. Jedoch befinden sich die Dateien danach auf einem internen Server der DHBW und sind nicht aus dem Internet erreichbar. Stattdessen kopiert ein Service in regelmäßigen Abständen die Dateien auf den öffentlich zugänglichen Server.

Veranstaltungen

Die Veranstaltungen werden durch die StuV in einem Google-Kalender gepflegt. Wie bereits die Vorlesungen, handelt es sich auch bei den Veranstaltungen um ics-Dateien. Im Gegensatz zur DHBW hält sich Google jedoch an den Standard, sodass die meisten Bibliotheken ohne Probleme verwendet werden können. Es bietet sich jedoch an, dieselbe Bibliothek zu verwenden, die für die Vorlesungen verwendet werden. Dieser Kalender ist unter der Adresse https://www.google.com/calendar/ical/asta.dhbw.de_08mkcuqcrppq8cg8vlutdsgpjg%40group.calendar.google.com/public/basic.ics zu finden. Die Inhalte werden neben der App auch auf der Website der StuV präsentiert.

Mensaplan

Der Mensaplan wird (nahezu) jede Woche durch das Studierendenwerk Heidelberg als PDF Datei online bereitgestellt. Wann genau der Plan aktualisiert wird, ist leider nicht bekannt. Im Regelfall geschieht dies jedoch im Laufe des Montagvormittags.

Nachrichten

Die App lädt in jeder Synchronisation auch immer eine JSON Datei von der Webpräsenz herunter. Beim Aufruf der URL wird durch die App der jeweils eingestellte Kurs als URL-Parameter an die Schnittstelle gesendet. In der JSON Datei werden innerhalb eines Arrays Nachrichten an die App übermittelt. Die Schnittstelle stellt nur Nachrichten zur Verfügung, welche in der Zukunft liegen, sodass eine Abfrage vergangener Nachrichten nicht möglich ist. Gleichzeitig erfolgt auch nur das Übermitteln von Nachrichten, die für den gesendeten Kurs gedacht sind.

Jede Nachricht enthält einen Titel, Inhalt, eine Priorität sowie Start und Endzeitpunkt. Die Priorität 1 gibt an, dass die Nachricht nur in der Aktuell-Ansicht der App angezeigt wird. Jede Nachricht ist genau im Zeitraum zwischen den beiden angegebenen Zeitpunkten sichtbar. Die Priorität 2 dagegen sorgt dafür, dass zusätzlich zu der Anzeige in der App auch zum Startzeitpunkt eine Benachrichtigung mit der entsprechenden Nachricht präsentiert wird. Benachrichtigungen der App erfolgen grundsätzlich ohne Ton.

Application Programmable Interface

Eine Nachricht mit der Priorität 42 kann eine spezifische Aktion in der App auslösen, ohne dass der Anwender etwas davon mitbekommt. In diesem Fall enthält das Titel Feld der Nachricht die auszuführende Aktion, während der Inhalt den Payload der Aktion enthält.

Zurzeit sind in der App sechs Befehle definiert. Vier der Befehle sind dafür gedacht, im Bedarfsfall die URLs für verschiedene Quellen auszutauschen. In dem Fall ersetzt der Payload aus der Nachricht einfach die hart-codierte URL. Die zwei anderen Befehle sind zur Steuerung des BSOD gedacht. Einer der beiden ermöglicht es, den Bluescreen für die App einzuschalten. Der übergebene Payload wird dem Anwender als Fehlermeldung angezeigt. Der andere Befehl deaktiviert den Bluescreen wieder, benötigt dafür aber keinen Payload.

Neuigkeiten der StuV

Die Neuigkeiten den StuV ist ein RSS Feed der Homepage der StuV. Die Datei wird durch die WordPress Präsenz generiert. Daher können Fehler in WordPress auch Auswirkungen auf den RSS Feed haben.