Challenge your friends in real-time matches, track your progress, and climb the leaderboard in this reimagined classic arcade experience.
Transcendence is a real-time multiplayer Pong game built as the final project of the 42 School common core. This single-page application combines modern web technologies with classic arcade gameplay, featuring tournaments, live chat, and comprehensive user management.
Frontend: TypeScript + Tailwind CSS
Backend: Fastify (Node.js)
Deployment: Docker (single command deployment)
Database: SQLite with hashed passwords
Security: HTTPS/WSS connections throughout
- Real-time Multiplayer: Play Pong against other players with smooth, responsive controls
- Tournament System: Automated matchmaking with clear bracket visualization
- Player Registration: Alias-based system for tournament participation
- Match Scheduling: Automated notification system for upcoming games
- OAuth 2.0: Secure authentication via GitHub
- Two-Factor Authentication (2FA): Additional security layer with one-time codes
- JWT Tokens: Secure session management and API route protection
- Form Validation: Server-side input validation for all user interactions
- Direct Messaging: Send private messages to other players
- User Blocking: Control who can message you
- Game Invitations: Challenge players directly from chat
- Tournament Notifications: Automatic alerts for upcoming matches
- Profile Access: View player stats and info through chat interface
- User Dashboards: Personal gaming statistics and performance metrics
- Game History: Detailed match records and outcomes
- Data Visualization: Charts and graphs for clear insights
- Performance Tracking: Monitor your progress over time
- Prometheus: Real-time metrics collection and system health monitoring
- Grafana: Custom dashboards for performance visualization
- Alert System: Proactive issue detection and notifications
- Historical Data: Long-term metric storage and analysis
- Multi-language Support: Available in 3+ languages
- Seamless Switching: Easy language selection for global accessibility
make
Access the application at https://localhost:8080
Make sure Docker is installed and running on your system before launching the application.




