En colaboración con mis compañeros Jacob, Tobias y Betül.
Este es el proyecto final del Common Core de 42. Su objetivo es poner a prueba todas nuestras habilidades mediante el desarrollo de una aplicación web full-stack con una gran cantidad de funcionalidades. La premisa consiste en crear nuestra propia versión de Pong con algunas características modernas elegidas por nosotros. El proyecto se compone de una parte obligatoria y de módulos opcionales Major y Minor que contribuyen a la nota final.

Las funcionalidades básicas que debía incluir Transcendence son una partida local de Pong entre dos jugadores y un sistema de torneos por rondas para varios jugadores. La jugabilidad debe ser fiel a la del juego original de 1972. El funcionamiento exacto del sistema de torneos queda a nuestra elección, por lo que nos tomamos ciertas libertades en su diseño. Nuestro sitio web también debe ser seguro y estar protegido contra inyecciones SQL y llamadas maliciosas a la API. Me centré principalmente en este aspecto, desarrollando el flujo de inicio de sesión y registro, el sistema de autenticación en dos factores (2FA), la gestión de JWT y cookies, así como la protección de la API mediante pre-handlers de autorización.
Elegimos 9 módulos Major y 4 módulos Minor. Un módulo Minor vale la mitad de un Major, lo que suma un total de 11 puntos de módulos. El requisito para obtener una calificación del 100% es de 7 puntos, por lo que alcanzamos la bonificación máxima del 125%.


git clone https://github.com/KixiKCodes/ft_transcendence
.env en la raíz del repositorio con las siguientes variables:JWT_SECRET=[Clave secreta para JSON Web Token]
GF_SECURITY_ADMIN_USER=[Nombre de usuario administrador de Grafana]
GF_SECURITY_ADMIN_PASSWORD=[Contraseña del administrador de Grafana]
GF_AUTH_ANONYMOUS_ENABLED=false
GF_USERS_ALLOW_SIGN_UP=true
SLACK_WEBHOOK_URL=[URL del Webhook de Slack para Alert Manager]
make build(Puedes usar make help para obtener información sobre comandos adicionales de Make).
Una vez que todo esté en funcionamiento, navega a https://localhost:8443/ y omite la advertencia relacionada con el certificado SSL autofirmado.
¡Y listo! El proyecto estará funcionando.
Jacob Graf - Diseño del juego, lógica de juego, gráficos 3D, estadísticas de usuario, arquitectura general del proyecto, implementación de todos los modos de juego y pruebas.
Tobias Keil - Enrutamiento web y WebSockets, sistemas de red y jugadores remotos, configuración de base de datos y backend, arquitectura general del proyecto, implementación del chat en vivo y del panel de usuario, sistemas de amistades, bloqueos e invitaciones, y pruebas.
Betül Büber - Sistemas DevOps y de monitorización, y pruebas.
Yo mismo - Ciberseguridad, flujo de registro de usuarios, sistemas de autenticación y autorización, configuración de usuario, frontend y diseño de interfaz, gestión del proyecto, diseño de sonido y música, pruebas y documentación.
Agradecimientos especiales: skyecodes por su ayuda en la implementación del sistema de fotos de perfil, las pruebas y por proporcionar un servidor para alojar el proyecto durante las pruebas en línea. Además, por el apoyo moral, que fue muy necesario.