Zur App: https://corona-gym.org

Herausforderung

In Zeiten der Pandemie sind alle Fitness-Center und Vereine geschlossen. Die Menschen müssen zu Hause bleiben, um die Kette zu unterbrechen. Dennoch sollten sie sich alleine zu Hause zum Sport motivieren.

Bedürfnis

Jeder will sich sportlich fit halten oder sogar wieder beginnen, mehr Sport zu treiben. Doch wie lässt sich das in Zeiten der Krise mit einer Ausgangssperre umsetzen?

Lösungsansatz

Die Lösung: Corona Gym - eine spezifische Video-Lösung, um mit anderen gemeinsam trotz der Distanz Sport zu treiben. Und das zu jeder Zeit: Am Morgen, während einer kurzen Pause im Home Office oder am Abend.

Wenn dein Fitness-Center und dein Verein geschlossen sind, heißt das nicht, dass du nicht mit anderen Sport treiben kannst. Der Fitness-Videomarkt ist einer der in diesen Tagen am heißesten umkämpften auf der Welt. Viele Stars der Szene kämpfen um die Aufmerksamkeit ihrer Fans - so auch in Deutschland wie zum Beispiel Daniel Aminati oder Pamela Reif.

Aber all diese Angebote können nichts daran ändern, dass man alleine im Wohnzimmer zu Hause Sport treibt. Es gibt keine spezifische Lösung für Video-Chats in einer Sportgruppe. Die Corona Gym App ist die Lösung. Sie ist für alle gedacht, die das Wichtigste am Sport nicht missen möchten: Spaß, Humor und die gegenseitige Motivation.

Im Corona Gym erhältst du die Möglichkeit, gemeinsam mit anderen zu trainieren. Denn eines ist klar: Gemeinsam macht Sport mehr Spaß und erhöht die Chance auf Regelmäßigkeit! Die Sportpsychologie konnte zeigen, dass nur eine gegenseitige Vereinbarung über den Sport den Effekt der Regelmäßigkeit signifikant erhöht.

Aufgeteilt in Altersgruppen, sportliche Aktivität und Einzelsportarten, die für die Aktivität zu Hause geeignet sind, bieten wir dem Benutzer ein umfassendes Angebot. Darüber hinaus bietet dir die Corona Gym App in Zukunft die Möglichkeit, Gleichgesinnte (Trainer und Sportler) in deiner Nähe kennenzulernen, damit du während der Pandemie aber auch darüber hinaus gemeinsam mit ihnen Sport treiben kannst.

Testet es doch gemeinsam: https://corona-gym.org

  1. Lade deine Freunde mit Hilfe des Links ein
  2. Wähle die gemeinsamen Übungen aus
  3. ... und startet euer gemeinsames Workout!

User Story

Donnerstag, 26.3. 2020 - 19:00 Uhr. Ich möchte nun wirklich einmal runter von der Couch kommen. Ein bisschen Sport machen wäre schön. Aber alleine die 100 Liegestützen machen, bringt es irgendwie nicht.

Dann gucke ich mal, was mir das Corona Gym für Optionen gibt. Ich öffne die App und kann mir mein Fitness-Programm zusammen stellen. Ich würde mal sagen, dass das für 15min Workouts reicht. Ich hole meine beiden Kollegen Paule und Kalle aus dem Fitness-Center dazu. Sonst trainieren wir ja auch am Donnerstagabend. Hey- da sind sie ja auch schon. Kalle muss noch das T-Shirt drüber ziehen. Geht sonst gar nicht. Dann geht es los. Haut ganz schön rein. Jetzt weiß ich auch, warum es hoch intensives Training heißt. Paule kann schon nicht mehr im 2. Satz. War klar. Am Ende sind wir alle knülle, heben den Daumen und verabschieden uns.

Technische Erklärung unseres Vorgehens

Die Grundfunktionen während des Hackathons ist das gemeinsame Training im Video. Wir standen vor der grundsätzlichen Überlegung, in welcher Einrichtung unsere Lösung stattfinden sollte. Wir haben uns für eine App-Umgebung entschieden, weil dies somit einfach für jeden und in jeder Situation nutzbar ist.

Für eine stabile Videolösung für mehrere Benutzer mussten wir folgende Entscheidungen treffen: a) Wie bekommen wir möglichst einfach Streaming integriert? b) Wie synchronisieren wir die Workouts live? c) Wie können Workouts erstellt werden?

Um Möglichst schnell einen präsentierbaren Prototypen zu haben wurde Jitsi als Open Source Streaming Angebot genutzt. Dieses verarbeitet dann den Stream der verschiedenen Nutzer. Das Frontend selber ist in Elixir und Phoenix entstanden, da es hier relativ einfach war schnell eine Synchronisierung zwischen den Nutzern in einem Raum herzustellen. Im Frontend kam an einigen Stellen dann auch noch Vue.js dazu um einzelne UI Komponenten zu kapseln und wiederverwendbar zu machen.

Gefühlt ging am Ende fast die meiste Zeit auf das Aufsetzen und Managen der Seite in einem Kubernetes Kluster zusammen mit dem automatischen Deployment aus Github drauf. An dieser Stelle nochmal vielen Dank an Christian Jantz für seinen Kubernetes Support! (Achtung: Wenn der Endpoint / von einem Pod redirected sind die Health-Checks von Kubernetes nicht sehr glücklich!)

Ansonsten wurde sich darauf konzentriert in relativ kurzer Zeit eine minimale App zu bauen die vorzeigbar ist. Dabei war es am Ende leider nicht mehr möglich einige Arbeit die bereits von Teilnehmern vorbereitet wurde komplett zu integrieren. So haben wir beispielsweise bereits ein vorbereitetes Backend für die spätere Persistierung von Räumen. Die Verbindung zum Frontend haben wir allerdings leider nicht mehr geschafft, daher wird der State aktuell in dem Phoenix Server im RAM gehalten.

Für die Trainingsinhalte haben wir uns zunächst für Elemente des HIIT (High Intensity Interval Training) entschieden. Es nimmt wenig Zeit in Anspruch, ist sehr effektiv und kann ohne Ausrüstung bei unserer Übungsauswahl durchgeführt werden.

Nach dem Hackathon sollen zusätzliche Funktionen von der Open Source-Community hinzugefügt werden:

  • Verbesserte Usabillity
  • Erhöhen der Stabilität und Sicherheit
  • Erweiterung der Funktionen z.B. Auswahl des Programminhalts oder Suche nach Trainingspartnern
  • Auswahl der Sportarten
  • Auswahl der Altersgruppen
  • Wahl der Schwierigkeitsgrade
  • Auswahl lokaler Aspekte

Follow

Zur App Corona Gym | Twitter | DevPost | YouTube

Claim

Eine Idee und Umsetzung im Rahmen des #WirvsVirus Hackathon in Zusammenarbeit mit der Bundesregierung, März 2020. https://wirvsvirushackathon.org/

Team

Es gab ein Kernteam. Das besondere und spannende am Hackathon war jedoch, dass immer wieder Leute im Projekt dazu gestoßen sind und sich auch ggf. nur kurzzeitig eingebracht und die Umsetzung voran gebracht haben. Danke an das Team von Corona Gym!

Built With

  • elixir
  • java;
  • jitsi
  • phoenix
  • springboot
+ 2 more
Share this project:

Updates