Konzeption und Evaluation einer extern gehosteten Web-Applikation auf Basis eines lokalen Kooperationsspiels für den Unterricht

worked on by: Jamie Schenker

Outline

Während des Softwareprojekts Kooperationsspiele im Wintersemester 2019/20 wurde im Verlauf des Semesters eine webbasierte Anwendung programmiert, welche es Lehrkräften erlaubt ihren SchülerInnen/Studierenden die Grundsätze des Gefangenen-Dilemmas explorativ nahezubringen.

Die Anwendung wird für diesen Zweck auf einem Raspberry Pi der Lehrkraft gestartet und die TeilnehmerInnen können mit ihren privaten Geräten dem erstellten Netzwerk beitreten, um die Anwendung zu nutzen. Damit die Anwendung auch von Lehrkräften ohne eingehende IT-Kenntnisse schnell und unkompliziert eingesetzt und unabhängig von existierenden Netzwerken durch alle Mobilgeräte genutzt werden kann ist das Ziel dieser Arbeit die Anwendung so anzupassen, dass diese extern gehostet und über das Internet erreichbar gemacht wird. Vor der Implementierung einer User- und Gruppen-Verwaltung im Frontend und der Anpassung des Backends für den Internetbetrieb werden in der Konzeption Modifikationen für die Sicherheit, den Datenschutz und die Userexperience erörtert und eine ausführliche Entwurfsplanung vorgenommen. Evaluiert werden sollen die Ergebnisse mit Tests auf verschiedenen Mobilgeräten und im Usertest mit dem Kunden.

Thesis Requirements

Milestones and Planning

1. Front- und Backend Refactoring

Die Anwendung wurde von einer auf Polling basierten Kommunikation auf Websockets umgestellt. Desweiteren werden Spieldaten nun nicht mehr im localstorage sondern per Redux gesichert. Der Code ist noch im Prototypenstatus und muss teilweise noch besser gekapselt und mit Tests und Errorhandling versehen werden.

2. Sicherheitsanpassungen

Die Pakete müssen noch auf den neusten Stand geupdated werden. Dabei gibt es anscheinend Inkompabilitäten die noch beseitigt werden müssen. Das Backend muss noch so umgebaut werden, dass es DDOS Attacken erkennt und entsprechende IPs automatisch blockt. Ebenfalls sollte das massive Scannen nach offenen Räumen verhindert werden. Das Errohandling muss außerdem die entsprechenden Errorcodes zurückliefern.

3. Einrichten des Webservers

Es wurde ein Testserver auf einem Raspberrypi mit meiner eigenen öffentlichen IP zum testen eingerichtet. Ein Server auf FU-Servern ist noch in der Bantragung.

4. Performancetests

Performancetests wurden noch nicht durchgeführt, da weder Soft noch Hardware im finalen Stadium sind.