Konzept - RobinNunkesser/isdcompanion-concept GitHub Wiki

Beispielkonzept

Im Folgenden wird ein Konzept für eine App für Hochschulen und Universitöten beschrieben.

Projektvision

Eine Hochschule lebt von ihren Studierenden und Mitarbeitern. Gerade am Anfang ist es aber noch schwierig sich zu orientieren. Neben dem Kennenlernen der neuen Abläufe gibt es später auch Bedarf für die Unterstützung im Hochschulalltag. Eine App für mobile Systeme ist als unterstützendes Element zentral. Sie ist immer zur Hand und kann auch sehr gut kontextuelle Hilfe z.B. abhängig vom Standort bieten.

Die Hochschulapp ermöglicht es Studierenden und Dozenten, sowie Mitarbeitern im Wissenschaftsbetrieb und in der Verwaltung, die notwendigen Informationen für einen erfolgreichen Start zu beziehen. Auch im Alltag können hilfreiche Funktionen unterstützen.

Die App muss für die gängigen Plattformen verfügbar sein, da die Zielpersonen typischerweise über heterogene mobile Systeme verfügen.

Anforderungen

Liste der Anforderungsquellen, bestehend aus relevanten Stakeholdern (SH), externen Systemen (ES) und Dokumenten (DOC).

ID Name Beschreibung
SH01 Prof. Dr. Robin Nunkesser Professor für Mobile Computing
SH02 Auditorium SoSe 2019 Studierende im SoSe 2019
ES01 FHApp der FH Dortmund Mobile App (Nicht mehr verfügbar)
ES02 HSHL Mobile Mobile App (Nicht mehr verfügbar)
DOC01 Projekt-Wiki StudyPlanner Wiki

Randbedingungen

Die App soll für Android und iOS erstellt werden. Es sollen die endemischen SDKs genutzt werden. Ergänzend wird die App mittels Xamarin und Flutter umgesetzt.

Kontext

Für den Kontext sind zwei Alternativen möglich. In jedem Fall soll in der App ein Mensaplan angezeigt werden, wofür der Zugriff auf ein externes Backend nötig ist. Daten wie eine Professorenliste oder ein Stundenplan ändern sich vergleichsweise selten und könnten mit Appupdates aktualisiert werden.

Systemkontext

Wenn mehr Daten als nur der Mensaplan dynamisch integriert werden sollen, ist der Aufbau eines eigenen Backends sinnvoll.

Systemkontext

Akteure

ID Name Beschreibung
AC01 Studierender Studierende der Hochschule
AC02 Dozent Dozenten der Hochschule
AC03 Mitarbeiter Mitarbeiter der Hochschule
AC04 Redakteur Redakteur der Hochschule

Bestehende Systeme

ID Name Beschreibung
SYS03 Mensa Server Server des Mensadienstleisters
SYS05 Web Server Server für die Internetpräsenz der Hochschule
SYS06 DB Server Datenbank der Hochschule

Geplante Systeme

ID Name Beschreibung
SYS01 iOS App App für iOS
SYS02 Android App App für Android
SYS04 Mobile Backend Server Server für die zu erstellenden Apps

Domäne

Domänenmodell

Dynamik

Für User Stories zur erstellenden App werden die folgenden Personas verwendet:

ID Name Alter Kategorie
PER09 Nadine 20 Primärpersona
PER08 Christian 25 Komplementärpersona
PER10 Ralph 42 Sekundärpersona

Die Personas PER01-PER07 sind für die zu erstellende App Non-Personas.

Übersicht Anwendungsfälle

Use Cases

UC01 Stundenplan abrufen (Quellen: DOC01, SH02; Akteure: AC01, AC02)

Nutzer möchte einen Stundenplan abrufen.

Vorbedingung

Keine

Standardablauf

Nachbedingungen

Keine

US01-01 Hilfe bei der Terminorganisation

Christian ist letztes Semester häufig zu spät zu den Vorlesungen gekommen. Für seine privaten Termine nutzt er häufig den Kalender seines Smartphones, für die Veranstaltungen an der Hochschule ist ihm das aber zu umständlich. Er wünscht sich eine App, die die Veranstaltungstermine direkt mit dem Kalender des Smartphones synchronisieren kann.

US01-02 Dynamische Anpassung von Start- und Endzeiten

Ralph hält nichts von der akademischen Viertelstunde. Lieber passt er den Vorlesungsbeginn auf seine anderen Termine an. Manche Veranstaltungen beginnen pünktlich, manche 15, manche 30 Minuten nach Stundenplaneintrag. Er wünscht sich, dass diese Abweichungen vom offiziellen Stundenplan über eine App direkt bei den Studierenden ankommen.

UC02 Veranstaltung exportieren (Quellen: SH01; Akteure: AC01, AC02)

Nutzer möchte eine Veranstaltung in den persönlichen Kalender exportieren.

Vorbedingung

UC01

Standardablauf

Nachbedingungen

Veranstaltung ist im persönlichen Kalender eingetragen.

US02-01 Nutzung eines eigenen Kalenders

Ralph hält Vorlesungen in verschiedenen Semstern und benötigt daher einen individuellen Stundenplan. Zu Beginn des Semester exportiert er sich daher all seine Veranstaltungen aus den einzelnen Stundenplänen in seinen persönlichen Kalender.

UC03 Mensaplan abrufen (Quellen: SH01; Akteure: AC01, AC02, AC03)

Nutzer möchte den Mensaplan für den aktuellen Tag abrufen

Vorbedingung

Keine

Standardablauf

Alternativer Ablauf

Nachbedingungen

Keine

US03-01 Schnelles Essen zwischen zwei Vorlesungen

Ralph hat nur eine kurze Pause zwischen zwei Vorlesungen. Er hat wenig Zeit für die Essensentscheidung oder ggfs. noch woanders zu essen falls ihm die Gerichte nicht zusagen. Über die App kann er auf dem Weg schnell den Mensaplan abrufen und bereits eine Entscheidung treffen.

US03-02 Filterung des Essensangebots nach Kriterien

Christian hält momentan eine spezielle Diät ein. Außerdem hat er eine Unverträglichkeit. Da diese Filter fest in der App hinterlegt sind, kann er sehr schnell schauen, ob heute ein passendes Gericht für ihn in der Mensa verfügbar ist.

UC04 Quizfrage ansehen (Quellen: SH01; Akteure: AC01)

Nutzer möchte einen Quizfrage sehen.

Vorbedingungen

Keine

Standardablauf

Nachbedingungen

Keine

Alternativer Ablauf

US04-01 Spielerisches Lernen

Nadine beantwortet privat gerne Quizfragen. In der App ihrer Hochschule ist ein Quiz zu Lerninhalten integriert, was sie direkt mal ausprobiert. Schon bei der ersten Frage ist sie sich allerdings unsicher und verliert ein bisschen die Lust am Quiz. Da entdeckt sie die Möglichkeit die Frage zu überspringen und geht zur nächsten Frage, die sie direkt beantworten kann.

UC05 Quizfrage beantworten (Quellen: SH01; Akteure: AC01)

Der Nutzer beantwortet die Frage und bekommt Feedback.

Vorbedingungen

UC04

Standardablauf

Nachbedingungen

Die Beantwortung der Frage wird für die Statistik gespeichert.

US05-01 Beantworten von Fragen

Nadine ist sich sicher die Antwort auf die angezeigte Frage zu wissen. Sie beantwortet die Quizfrage und freut sich über die Rückmeldung, dass sie richtig lag.

UC06 Statistik ansehen (Quellen: SH01; Akteure: AC01)

Der Nutzer beantwortet die Frage und bekommt Feedback.

Vorbedingungen

Keine

Standardablauf

Nachbedingungen

Keine

US06-01 Statistik ansehen

Nach einigen beantworteten und übersprungenen Fragen interessiert Nadine sich dafür, wie sie sich bisher geschlagen hat. Sie schaut die Statistik an und stellt erfreut fest, dass sie einen Großteil der Fragen richtig beantwortet hat. Die übersprungenen Fragen wurden separat gezählt.

UC07 Informationen über Professoren abrufen (Quellen: SH01; Akteure: AC01)

Nutzer möchte Basisinformationen über Professoren abrufen.

Vorbedingung

Keine

Standardablauf

Nachbedingungen

Keine

US07-01 E-Mail an Professor

Nicole hat ein Anliegen, das sie gerne per E-Mail mit Ralph besprechen möchte. Da sie die E-Mail-Adresse vorher noch nicht benutzt hat und nicht kennt, muss sie diese nachschauen. Dies macht sie über die App.

UC08 Anwendung personalisieren (Quellen: SH01; Akteure: AC01, AC02, AC03)

Nutzer möchte die Anwendung personalisieren.

Vorbedingung

Persistente Einstellungen oder Standardwerte stehen bereit.

Standardablauf

Nachbedingungen

Veränderte Einstellung wird persistiert.

Slices

Jede Einstellung sollte in einem eigenen Slice umgesetzt werden:

  • UCS08-01 Unverträglichkeiten erfassen
  • UCS08-02 Semester einstellen
  • UCS08-03 Statusgruppe einstellen
US08-01 Filterung des Essensangebots nach Kriterien

Christian hält momentan eine spezielle Diät ein. Außerdem hat er eine Unverträglichkeit. Damit nur für ihn passende Gerichte und die korrekten Preise angezeigt werden, erfasst er seine Unverträglichkeiten und seine Statusgruppe.

US08-02 Anzeige des passenden Stundenplans

Nadine hat den größten Teil ihres Studiums bisher gemäß vorgschlagenem Stundenplan absolviert. Auch dieses Semester möchte sie dies fortführen und stellt daher das passende Semester ein.

Qualitätsanforderungen

REQ01 Erreichbarkeit (Quellen: SH01, Priorität: Mandatory)

Auch bei Nichterreichbarkeit von SYS05 soll die App weiter nutzbar sein.

REQ02 Aussehen und Handhabung (Quellen: SH01, Priorität: Mandatory)

Die App soll einfach zu nutzen sein und plattformtypisch aussehen.

Umsetzungskonzeption

Im Folgenden wird festgelegt, wie die erhobenen Anforderungen umgesezt werden sollen.

Entwurfsentscheidungen

ADR01 Verzicht auf eigenes Backend

Kontext

Es ist möglich die App mit oder ohne eigenes Backend umzusetzen.

Entscheidungsbeschreibung

In der ersten Version der App wird auf ein eigenes Backend verzichtet.

Konsequenzen

Ein Verzicht auf ein eigenes Backend bedeutet, dass nur die Daten dynamisch geladen werden können, die bereits in externen Backends bereit stehen. Für andere Datenaktualisierungen ist ein Update der App nötig.

Status

Akzeptiert

ADR02 Nutzung der Hexagonalen Architektur

Kontext

Das Projekt soll in möglichst sauberer Arbeitsteilung umgesetzt werden. Perspektivisch können verschiedene Backendtechnologien in verschiedenen Umgebungen zum Einsatz kommen.

Entscheidungsbeschreibung

Als Makroarchitektur des Projekts wird die Hexagonale Architektur eingesetzt.

Konsequenzen

Die saubere Entkopplung über Ports und Adapter erleichtert die Zusammenarbeit.

Status

Akzeptiert

ADR03 Essensfilter in Einstellungen

Kontext

Das Essensangebot der Mensa muss an sinnvoller Stelle nach Allergenen und Zusatzstoffen gefiltert werden können.

Entscheidungsbeschreibung

Die Filter für Mensagerichte werden in den Einstellungen vorgenommen. Im Normalfall sind Allergien und der Wunsch nach dem Ausschluss von Zusatzstoffen dauerhafte Filter. Daher sind sie in den Einstellungen am besten aufgehoben.

Konsequenzen

Auch bei jedem Neustart der App sind die Filtereinstellungen aktiv.

Status

Akzeptiert

ADR04 Stundenpläne nach Semester

Kontext

Über die App lassen sich Stundenpläne für das Studium einsehen.

Entscheidungsbeschreibung

Es wird jeweils der Stundenplan für das in den Einstellungen gewählte Semester angezeigt.

Konsequenzen

Studierende, die nicht mehr im ,,Plan’’ sind, müssen ggfs. häufiger in den Einstellungen das Semester wechseln.

Status

Akzeptiert ### Systembeschreibung

Name und Organisationseinheit

  • ISD Companion (de.hshl.isd)

Betriebssysteme

  • Android (endemisch, Xamarin und Flutter) ab API 23
  • iOS (endemisch, Xamarin und Flutter) ab Version 13

Endgeräteklassen

  • Nur Hochformat
  • Keine Optimierung für iPad
  • Keine Optimierung für hohe Displaygrößen auf Android (z.B. Breiten ab 900dp)

Umgebungen

  • Prototyp (Dummydaten)
  • Produktivumgebung

Lokalisierungen

  • Deutsch
  • Englisch

Fremdsoftware

Folgende Software von Drittherstellern soll eingesetzt werden:

iOS
  • Alamofire[1] (Copyright)
  • url-image[2] (MIT)
Android
  • Open Source Notices[3] (com.google.android.gms:play-services-oss-licenses; Apache License 2.0)
  • Coil[4] (io.coil-kt:coil-compose; Apache License 2.0)
  • Retrofit[5] (com.squareup.retrofit2:retrofit; Apache License 2.0)
  • Retrofit Gson Converter[6] (com.squareup.retrofit2:converter-gson; Apache License 2.0) \end{itemize}
Xamarin
  • System.Net.Http[7] (Microsoft)
  • System.Text.Json[8] (MIT)
  • System.Net.Http.Json[9] (MIT)
Flutter
  • http[10] (BSD)

Interne und externe Schnittstellen

Die App bezieht externe Daten von SYS03.

Daten Quelle Kommunikation Datenformat Details
Mensaplan SYS03 HTTP (REST) JSON https://openmensa.org

Bausteinsicht

Der konkrete Aufbau ergibt sich durch die Anwendung der Hexagonalen Architektur. Für ausgewählte Bereiche ist hier ergänzend eine Bausteinsicht angegeben.

Quiz

Quiz

Detaillierte Abläufe

TODO ### Interaktionsdesign

Interaktionsdesign

Benutzerschnittstellendesign

Übersicht

ID Name
SCR01 Meine Hochschule
SCR02 Stundenplan
SCR03 Mensaplan
SCR04 Nachrichten
SCR05 Räume
SCR06 Professoren
SCR07 Aktuelles
SCR08 Gruppe anlegen
SCR09 Einstellungen
SCR10 Raumansicht
SCR11 Webanzeige
SCR12 Nachrichten
SCR13 Filter

Visuelles Design

TODO ### Glossar / Abkürzungen

Begriff / Abkürzung Definition Bemerkung
Dozent Person, die an Hochschulen oder Bildungsinstituten unterrichtet bzw. lehrt
Redakteur Person, die Texte ändert oder erstellt Hier vor allem die Person, die Neuigkeiten einpflegt
halal nach islamischem Glauben erlaubt hier bezogen auf erlaubte Nahrungsmittel

[1] https://github.com/Alamofire/Alamofire

[2] https://github.com/dmytro-anokhin/url-image

[3] https://developers.google.com/android/guides/opensource

[4] https://coil-kt.github.io/coil

[5] http://square.github.io/retrofit

[6] https://github.com/square/retrofit/tree/master/retrofit-converters/gson

[7] https://www.nuget.org/packages/System.Net.Http/

[8] https://www.nuget.org/packages/System.Text.Json/

[9] https://www.nuget.org/packages/System.Net.Http.Json/

[10] https://pub.dartlang.org/packages/http