In Zusammenarbeit mit meinen Kommilitonen Jacob, Tobias und Betül.
Dies ist das Abschlussprojekt des 42 Common Core. Ziel ist es, alle unsere Fähigkeiten zu testen, indem wir eine Full-Stack-Webanwendung mit zahlreichen Features entwickeln. Die Grundidee besteht darin, eine eigene Version von Pong mit modernen Erweiterungen zu erstellen. Das Projekt besteht aus einem verpflichtenden Teil sowie optionalen Major- und Minor-Modulen, die zur Endbewertung beitragen.

Die grundlegenden Anforderungen von Transcendence sind ein lokales Pong-Spiel zwischen zwei Spielern sowie ein rundenbasiertes Turniersystem für mehrere Spieler. Das Gameplay soll dem Original von 1972 möglichst treu bleiben. Die genaue Umsetzung des Turniersystems war uns freigestellt, daher haben wir hier eigene Entscheidungen getroffen. Die Website muss sicher sein und gegen SQL-Injections sowie bösartige API-Aufrufe geschützt werden. Ich habe mich hauptsächlich auf diesen Bereich konzentriert und den Login-/Registrierungsprozess, das 2FA-System, JWT- und Cookie-Management sowie API-Schutz mittels Authorization Pre-Handlern implementiert.
Wir haben 9 Major-Module und 4 Minor-Module gewählt. Ein Minor-Modul zählt dabei halb so viel wie ein Major-Modul, insgesamt ergeben sich somit 11 Modulpunkte. Für 100 % Bewertung sind 7 Punkte erforderlich, wodurch wir den maximalen Bonus von 125 % erreichen.


git clone https://github.com/KixiKCodes/ft_transcendence
JWT_SECRET=[JSON Web Token Secret Key]
GF_SECURITY_ADMIN_USER=[Grafana Admin Benutzername]
GF_SECURITY_ADMIN_PASSWORD=[Grafana Admin Passwort]
GF_AUTH_ANONYMOUS_ENABLED=false
GF_USERS_ALLOW_SIGN_UP=true
SLACK_WEBHOOK_URL=[Slack Webhook URL für Alertmanager]
Anschließend kann alles mit dem Makefile gebaut werden: make build (make help zeigt weitere verfügbare Befehle)
Danach kann die Anwendung unter https://localhost:8443/ geöffnet werden. Die Warnung wegen des selbstsignierten SSL-Zertifikats kann ignoriert werden.
Das System ist damit einsatzbereit.
Jacob Graf – Game Design, Game Logic, 3D-Grafik, Nutzerstatistiken, allgemeine Architektur, Implementierung aller Spielmodi, Playtesting.
Tobias Keil – Routing und WebSockets, Networking und Remote-Spieler-System, Datenbank- und Backend-Setup, Architektur, Live-Chat und Dashboard, Freundes- und Blockierungssystem, Playtesting.
Betül Büber – DevOps und Monitoring-Systeme, Playtesting.
Ich selbst – Cybersecurity, Registrierungsflow, Authentifizierungs- und Autorisierungssysteme, Nutzereinstellungen, Frontend- und UI-Design, Projektmanagement, Sounddesign und Musik, Playtesting, Dokumentation.
Besonderer Dank: skyecodes für Unterstützung beim Profilbild-System, Playtesting sowie die Bereitstellung eines Servers für Online-Tests. Außerdem für wichtige moralische Unterstützung.