Softwarearchitektur
Die übergreifende Softwarearchitektur besteht aus einem React (JavaScript) Frontend und einem Flask (Python) Backend. Die React App besteht aus mehreren Ansichten. In der Session View können eigene, sogenannte ZRoom-Sessions erstellt werden, die wiederum automatisch eine verknüpfte Zoom-Session sowie eine darunterliegende Reactions View für diese Session anlegt (beide eingebettet in eine Fenster-Ansicht). Die Reactions View besteht aus Buttons, die entsprechende Reaktionen widerspiegeln (vergleichbar mit den Zoom Reaktionen, für die Zoom allerdings selber keine externe APIs zur Verfügung stellt). Über diese Buttons können die Remote-Studenten ihre Reaktionen auslösen und darüber die REST APIs im Backend zur Manipulation der Leuchten/Lautsprecher in Vorlesungsräumen ansprechen.
Die Flask App stellt als Web Server die REST APIs zur Erstellung und Bearbeitung von ZRoom-Sessions und zum Manipulieren der Leuchten/Lautsprecher in den zur ZRoom-Session zugeordneten Vorlesungsräumen zur Verfügung. Beim Senden einer Reaktion in einer ZRoom-Sesson in der Reactions View des Frontends wird die/der entsprechende Leuchte/Lautsprecher im Vorlesungsraum der zugeordneten ZRoom-Session über das Backend aktiviert.
MVP Softwareentwurf
Unsere prototypische Implementierung als MVP besteht aus einer React App mit einer vereinfachten Darstellung der Reactions View mit drei Buttons für je eine Reaktion (Daumen hoch, Frage, Problem). Der Flask Web Server stellt eine REST API zum Manipulieren von drei Leuchten (Grün, Blau, Rot; jeweils eine Leuchte für eine Reaktion) zur Verfügung. Die Anwendungen werden auf einem Raspberry PI gehostet. Die drei Leuchten sind über die GPIO-Pins mit dem Raspberry Pi verbunden und werden über die Flask App angesteuert.