reden.jetzt - ein Projekt gegen soziale Isolation in der Corona-Krise
Wir haben für den WirVsVirusHackathon eine Plattform entwickelt, die Menschen gegen soziale Isolation helfen soll.
Der Hackathon
Aufgrund der aktuellen Corona-Krise hat die Bundesregierung zu einem Hackathon aufgerufen, um Lösungen für Menschen und Wirtschaft zu finden. Die Teilnehmer hatten 48h Zeit, um sich in Teams zusammenzufinden und einen ersten Prototyp eines möglichen Lösungsansatzes zu entwickeln.
Das Problem
Wir haben uns mit dem Problem beschäftigt, dass Social Distancing, das zum Stoppen der Ausbreitung des Virus notwendig ist, eine große psychische Belastung für die Menschen bedeutet. Sozialer Kontakt ist wichtig und notwendig für die mentale Gesundheit. Da physischer Kontakt in der aktuellen Krise zu vermeiden ist, bleibt nur noch der virtuelle Kontakt. Zur Kommunikation mit Freunden und Bekannten gibt es bereits mehr als ausreichend Lösungen (Telefon, Skype, Discord usw.). Doch manchmal ist gerade niemand zum Reden da. Deshalb haben wir uns vorgenommen eine Online-Plattform zu entwickeln, die Menschen interessenbasiert miteinander verbindet. Wichtig war uns hierbei, dass die Plattform, im Gegensatz zu vielen anderen Plattformen, nicht für Dating und Sexting missbraucht wird. Außerdem wollten wir eine sehr skalierbare und datenschutzfreundliche Lösung finden.
Unsere Lösung
reden.jetzt verbindet Menschen mit gleichen Interessen und ermöglicht Gespräche direkt auf der Webseite über peer-to-peer Audioverbindungen. Eine Anmeldung oder Ähnliches ist nicht notwendig. Lediglich mögliche Gesprächsthemen, das eigene Alter, sowie ein Intervall für das Alter potentieller Gesprächspartner werden angegeben. Anschließend werden schnellstmöglich User mit gemeinsamen Interessen miteinander verbunden. Die Besonderheit: Mithilfe von PeerJS wird eine direkte peer-to-peer-Verbindung realisiert, sodass die Gespräche nicht über unsere Server laufen. Dadurch ist die Lösung extrem skalierbar und datenschutzfreundlich. Wir können nach unseren aktuellen Load-Tests schätzungsweise 10k Nutzer mit einem Server aus dem Azure Free-Tier hosten, somit wäre eine Skalierung auf mehrere hunderttausende Nutzer kein Problem. Wir kümmern uns lediglich darum, alle Beteiligten zusammenzubringen. Unsere Lösung unterstützt theoretisch auch Videoanrufe, wir haben uns jedoch bewusst dagegen entschieden, um Missbrauch zu verhindern.
Wie haben wir das Projekt umgesetzt?
Wir hatten bereits vor dem Hackathon eine relativ genaue Vorstellung davon, was wir umsetzen möchten. Als Tech-Stack haben wir uns für ein Angular-Frontend und ein Nest.js-Backend entschieden. Zuerst haben wir gemeinsam eine API-Spezifikation mit OpenAPI erarbeitet, sodass wir uns in zwei Teams, eins für das Frontend und eins für das Backend einteilen konnten. Auf Grundlage der API-Spezifikation und eines Design-Mockups, das wir am ersten Abend erstellt haben, konnten wir nun parallel im Frontend- und Backend-Team an der Umsetzung arbeiten. Zusätzlich haben wir Continuous Deployment für Front- und Backend eingerichtet. Das Frontend wird auf Netlify deployed. Von dem Backend wird ein Docker-Container gebaut, der anschließend auf Azure bereitgestellt wird. Durch die Verwendung von Netlify wird das Frontend-Bundle unkompliziert auf einem CDN gehostet, was die Ladezeiten der Webseite verringert und Skalierbarkeit garantiert.
Zusammenfassung
Wir haben es geschafft innerhalb der vorgegebenen Zeit eine produktiv nutzbare Plattform für interessenbasiertes VoIP zu entwickeln. Die Plattform ist besonders leicht und schnell nutzbar, was für den geplanten Anwendungszweck essenziell ist. Die Plattform kann in Zukunft noch mit vielen weiteren Features ergänzt werden. Als OpenSource-Projekt können auch andere Plattformen auf unserer Lösung aufbauen. Wir hoffen, dass das Projekt gut angenommen wird!
Sollte etwas unklar geblieben sein, freuen wir uns über eine Rückmeldung an blog@devsaur.de!