Die ganze Schweizer Tenniswelt in einer zentralen Web-Plattform

über das Projekt

MyTennis ist die Web-Plattform des Schweizer Tennis Verbandes für lizenzierte Spielerinnen und Spieler sowie weitere Interessierte. Wer sich registriert, erfährt alles über Spielerinnen und Spieler, Turniere, aktuelle Resultate, Interclub-Meisterschaften und Clubs.

  • Content Management System
    Symfony, React.js, Hasura.io, Microservices, Azure B2C
  • Funktionalitäten
    Single Sign On, Active Directory Integration, Erweiterte Mitgliederprofile, Google Maps Integration, Live Rankings, Zahlungen

Bereits seit über acht Jahren betreut Dream Production Swiss Tennis. Nun wurde die Plattform zum zweiten Mal neu gelauncht und dabei auf einer komplett neuen entkoppelten Architektur umgesetzt. Die Progressive Web App basierend auf dem React.js Framework ermöglicht den rund 130’000 Userinnen und User – davon 60’000 lizenzierte – ein modernes und performantes Nutzererlebnis.

Umfangreiche Informationen aus dem Tennis-Betrieb

Die Plattform bündelt sämtliche relevanten Informationen und präsentiert diese massgeschneidert:

  • Aktuelle Informationen über lizenzierte Spielerinnen und Spieler: neueste Resultate, Klassierungen und Klassierungs-Historie sowie persönliche Statistiken
  • Aktuelle Ranglisten zu den verschiedenen Klassierungen, Alterskategorien oder Regionen
  • Turniersuche, Turnieran- und abmeldung neu mit Single-Sign-On, Turnier-Tableaus, Spielpläne und Resultate.
  • Club-Map, Clubsuche mit Club-Details und Informationen zu den Interclub-Teams
  • Alle Informationen zum Interclub, Junior Interclub und Team Challenge mit aktuellen Spielplänen, Informationen zu den Gruppenspielen, Tableaus und Resultaten.
  • Übersicht über die zugeteilten Turniere für Officials und Referees

Hohes Benutzererlebnis dank ausgeklügelten Features

  • Der Login funktioniert über eine Single-Sing-On Lösung und Anbindung an Azure Active Directory B2C. Das Login ermöglicht den Zugang auf verschiedene Swiss Tennis Plattformen mit gleichen Zugangsdaten.
  • Bezahltes Premium Abonnement, das Push Notifications über Aktivitäten und Rankings von favorisierten Spielerinnen und Spieler sowie Clubs und Turniere, ein persönliches Dashboard und detaillierte Spielerstatistiken bietet.
  • Zusatz-Abonnement, um monatliche Ranking-Updates zu erhalten, ebenfalls per Push Notification

Decoupled Plattform mit React und Microservices

  • Da diverse verschiedene Systeme und Datenbanken auf einer Plattform zusammen spielen müssen, war klar, dass die Plattform nicht als Monolith sondern in einer decoupled Architektur mit folgenden Komponenten umgesetzt werden muss.
  • React Frontend: Um die App als Progressive Web App umzusetzen, wurde für die ganze Frontend Applikation auf React.js gesetzt, das JavaScript Framework von Facebook.
    Um die umfangreichen Daten aus verschiedenen Datenbanken mit verschiedenen Zugriffsberechtigungen in modernen APIs bereitzustellen wurde auf die GraphQL basierte Middleware hasura.io gesetzt. Hasura erlaubt es, über GraphQL schnell Daten aus verschiedenen Quellen und Datenbanken strukturiert an die Applikationen auszugeben und die Zugriffsberechtigungen zu steuern.
  • Diverse neue Microservices wurden mit dem Symfony Webframework umgesetzt, wie zum Beispiel das ganze Abonnemente-Management und die (Push-)Notifications.
  • Bestehende Java-basierte Applikationen von Swiss Tennis wurden mit einem neuen JSON Interface erweitert, um mit der neuen Fronten Applikation zu interagieren.

Single-Sign-On

Um zu gewährleisten, dass die myTennis Benutzerinnen und Benutzer auf allen anderen Plattformen – bestehenden und künftigen – mit dem gleichen Benutzeraccount interagieren können war klar, dass eine Single-Sign-On (SSO) integriert werden musste. Ebenso war eine SSO Lösung zwingend, um die ganzen Berechtigungen auf den diversen APIs über JSON Web Tokens, die die nötigen Rollen und Berechtigungen enthalten, zu steuern. Als Identity Provider wurde hier auf das Azure AD B2C von Microsoft gesetzt.
Die bestehenden Benutzerinenn und Benutzer (ca. 130’000) wurden in das Azure AD B2C migriert. Das erlaubte es, Neuregistrierungen zu vermeiden und den Prozess des Plattform-Wechsels möglichst einfach zu machen.

Betrieb in der Azure Cloud

Wegen der decoupled-Architektur mit den diversen Applikationen und Microservices bot es sich an, die ganze Architektur und Hosting in der Azure Cloud aufzusetzen. Ebenfalls müssen Plattform und einzelne Komponenten starkem Traffic und hohem Load standhalten – gerade zum Beispiel während den Peaks zu Interclub Zeiten.
Hierfür wurde auf eine Kubernetes basierte Architektur in der Azure Cloud gesetzt. Diese gewährleistet für sämtliche Applikationen hohe Performance und Stabilität, hohe Verfügbarkeit und flexible Bereitstellung von Ressourcen.

Schematische Darstellung der System-Architektur

Zur Webseite
Zur Webseite Zur Webseite