Welcome to ft_transcendence! This is a full-stack web application featuring a real-time 3D Pong game with multiplayer capabilities, user management, chat functionality, tournaments, and much more.
- ๐ฎ 3D Pong Game with Babylon.js
- ๐ Real-time Multiplayer gaming
- ๐ Tournament System with matchmaking
- ๐ฌ Live Chat and messaging
- ๐ฅ User Management with profiles and friends
- ๐ Security with 2FA and OAuth
- ๐ฑ Compatibility with all browsers
- ๐ Containerized deployment with Docker
| Category | Technology |
|---|---|
| Frontend | TypeScript, Vite, Tailwind CSS, Babylon.js, SPA |
| Backend | Node.js, Fastify, SQLite |
| Security | JWT, OAuth 2.0, 2FA (TOTP), bcrypt, HTTPS, WSS |
| Real-time | WebSockets (ws library) |
| Infrastructure | Docker, Docker Compose, Caddy |
- Docker
- Docker Compose
- Make
-
Clone the repository
git clone <repository-url> cd ft_transcendence
-
Configure environment variables
cp .env.prod.example .env.prod # Edit .env.prod with your secrets (JWT_SECRET, COOKIE_SECRET, Google OAuth credentials) -
Generate secrets (if needed)
# JWT Secret (64 characters) openssl rand -hex 32 # Cookie Secret (32 characters) openssl rand -hex 16
# Start the application
make prod-up
# View logs
make prod-logs
# Stop the application
make prod-down
# Alternatively: restart the application
make prod-re# Start development environment
make dev
# Clean up development containers
make clean# Complete Docker cleanup
make ff_clean_docker
# Update environment variables
make update-envft_transcendence/
โโโ core/
โ โโโ frontend/ # Vite + TypeScript frontend
โ โโโ backend/ # Fastify + Node.js backend
โ โโโ game_shared/ # Shared game logic
โโโ docker/ # Docker configurations
โโโ docker-compose.yml # Container orchestration
- Production:
https://localhost:443orhttps://<your-hostname>:1443 - Development:
http://localhost:5173(Frontend) +http://localhost:3000(Backend)
This project fulfilled all mandatory requirements and includes multiple bonus modules from the subject.
Final Score: 125/100 ๐
- โ Frontend Framework: TypeScript
- โ Single Page Application: Complete SPA architecture
- โ Browser Compatibility: Firefox, Chrome, Brave
- โ Containerization: Docker deployment with single command
- โ Live Multiplayer Pong: Real-time gameplay
- โ Local & Remote Play: Same keyboard or different players
- โ Tournament System: Multi-player tournaments with matchmaking
- โ Server-Side Game Logic: Anti-cheat protection
- โ 3D Graphics: Immersive Babylon.js rendering with camera controls
- โ Game Customization: Adjustable game parameters
- โ Secure Authentication: Hashed passwords with strong algorithms
- โ OAuth Integration: Google Sign-In support
- โ User Profiles: Custom avatars, usernames, display names
- โ Statistics Tracking: Win/loss records and match history
- โ Two-Factor Authentication: Enhanced security with 2FA
- โ GDPR Compliance: Data export, anonymization, and deletion
- โ Real-time Chat: Direct messaging between users
- โ Friends System: Add friends and view online status
- โ User Blocking: Block unwanted interactions
- โ Game Invitations: Invite friends to matches
- โ HTTPS/WSS: End-to-end encryption
- โ Input Validation: Frontend and backend validation
- โ Protected Routes: Secure access control
- โ CSRF Protection: Cross-site request forgery prevention
| Name | Role | Profile |
|---|---|---|
| Fabian Rapp | Game | |
| Iliรจs Ziane | Backend | |
| Maksim Volkmann | Frontend | |
| Daniel Ilin | Frontend | LinkedIn | Website |





