Final project of the 42 Common Core - A real-time multiplayer Pong web application with social features.
ft_transcendence is a full-stack web application that reimagines the classic Pong game with modern web technologies and social features. Built with Django, PostgreSQL, and vanilla JavaScript, it offers real-time multiplayer gameplay, tournaments, and social networking capabilities.
- Real-time multiplayer Pong using WebSocket communication
- Tournament system with bracket-style competitions
- AI opponent trained with NEAT (NeuroEvolution of Augmenting Topologies)
- 3D game visualization using Three.js
- Server-side game engine for fair play
- Global ranking ladder system
- User profiles with customizable avatars
- Friend system with request management
- Real-time online status tracking
- Detailed match history and statistics
- Global leaderboard
- TLS encryption for all communications
- JWT-based authentication
- CSRF protection
- GDPR-compliant data handling
- Two-factor authentication (2FA)
- Secure password recovery system
- Framework: Django + Django Channels
- Database: PostgreSQL
- Authentication: JWT + OAuth2 (42 School integration)
- WebSocket: Django Channels + ASGI
- AI: NEAT-Python for AI opponent
- Core: Vanilla JavaScript (No frameworks)
- UI Framework: Bootstrap
- 3D Graphics: Three.js
- Real-time: WebSocket API
- Server: Gunicorn + Daphne
- Reverse Proxy: Nginx
- Containerization: Docker + Docker Compose
graph TD
Client --> |HTTP/HTTPS| Nginx
Nginx --> |Proxy Pass| Gunicorn
Nginx --> |WebSocket| Daphne
Gunicorn --> Django
Daphne --> Channels
Django --> PostgreSQL
Channels --> PostgreSQL
graph LR
Client --> |WebSocket| GameServer
GameServer --> |Physics Engine| GameState
GameServer --> |AI Model| AIOpponent
GameState --> |Update| Client
Tournament --> GameServer




