A sophisticated web application that reimagines the classic Pong experience through immersive 3D graphics, real-time multiplayer tournaments, and comprehensive social features. Built with modern web technologies and inspired by the original 1972 Pong arcade board aesthetics.
- WebGL-Powered Environment: Fully immersive 3D arcade room with authentic retro aesthetics
- Local Multiplayer Gaming: Simultaneous two-player action with responsive controls
- Physics & Collision: Precise paddle movement and ball physics simulation
- Multi-player Tournaments: Create and join tournaments with bracket visualization
- Real-time Updates: Live tournament progression via WebSocket
- Match Organization: Automated player pairing and round management
- Live Chat: Real-time private messaging between users
- Friend System: Add/remove friends with online status
- Game Invitations: Send and receive game invites through notifications
- User Profiles: Avatar upload and profile customization
- OAuth 2.0: Login with 42 School API
- Traditional Auth: Username/password registration
- Secure Sessions: Token-based authentication
- Game History: Track wins, losses, and performance
- User Statistics: Personal dashboards with game analytics
- Leaderboards: Compare performance with other players
- GDPR Compliance: Account deletion and data export
- Secure Data: Encrypted passwords and protected user data
- Privacy Controls: Block users and manage visibility
Backend Architecture:
- Django 4.2.9 + Django REST Framework - Robust API development
- Django Channels + ASGI - Real-time WebSocket communication
- PostgreSQL - Relational database with complex queries
- Redis - High-performance WebSocket channel layer & caching
Frontend Technologies:
- Vanilla JavaScript SPA - Custom single-page application routing
- Three.js + WebGL - 3D graphics rendering
- Bootstrap 5 - Responsive design framework
- WebSocket API - Bidirectional real-time communication
DevOps & Infrastructure:
- Docker Compose - Containerized microservices architecture
- Nginx - Production-grade reverse proxy with SSL termination
- Daphne ASGI Server - Async Python web server
- Docker & Docker Compose
- Modern web browser with WebGL support
- Clone and setup
git clone https://github.com/lgeniaux/transcendence.git
cd transcendence
cp .env.example .env
# Configure your .env file with proper values- Launch
make all
# or: docker compose up --build -d- Access
- Application: https://localhost:8443
- Accept the self-signed SSL certificate
make all # Start all services
make clean # Stop services
make fclean # Clean everything (including volumes)
make build # Rebuild without cache
# Django commands
docker compose exec web python backend/manage.py [command]
# Run tests
docker compose exec web python -m pytest- Register or login with 42 OAuth
- Local Game: Play immediately with a friend on the same keyboard
- Tournament: Create or join tournaments for competitive play
- Chat: Message other players and build your friend network
- Statistics: Track your progress and compare with others
🌐 Nginx (SSL, Static Files)
↓
🐍 Django (API, Authentication)
↓
📡 Django Channels (WebSocket: Chat, Notifications)
↓
🗄️ PostgreSQL (Data) + ⚡ Redis (WebSocket)
WebSocket Usage:
- Real-time chat messaging
- Live notifications (friend requests, game invites)
- Tournament updates and match announcements
| Browser | Version | Status |
|---|---|---|
| Chrome | 80+ | ✅ Full Support |
| Firefox | 75+ | ✅ Full Support |
| Safari | 13+ | ✅ Full Support |
| Edge | 80+ | ✅ Full Support |
Requires WebGL support for 3D graphics
Educational project for 42 School curriculum.
🎮 Ready to play some 3D Pong? 🏓
Built by 42 School students
