Ping? Pong! Now with a side of
Uncaught TypeError: this.document is undefined
This monorepo contains the code for ft_transcendence
, the last project at 42 school.
scripts/
somewhat useful random stuff 👍components/
what makes this shit runmonitoring/
- The monitoring system, using Prometheus and Grafana, as well as custom exporters
nginx/
- HTTP Server configuration and setup files
services/
- The backend services, with custom-built micro-services
website/
- HTML/JavaScript front-end & website service
The transcendance project is split into multiple Minor and Major modules; here's a list of what we have chosen:
-
Web
- (Major) Use a Framework as backend
- (Minor) Use a front-end framework or toolkit
- (Minor) Use a database for the backend
- (Major) Store the score of a tournament in a Blockchain
-
User Management
- (Major) Standard user management, authentication, users across tournaments
- (Major) Implementing remote authentication (OAuth2) + JWT
-
Gameplay and User Experience
- (Major) Remote players
- (Major) Multiplayer (> 2 players)
- (Major) Add another Game (w/ User History & Matchmaking)
- (Minor) Game customization options
- (Major) Live chat
-
AI / Algorithm
- (Major) Introduce an AI opponent
- (Minor) User and Game stats dashboard
-
Cybersecurity
- (Major) Implement WAF/ModSecurity w/ Hardened Configuration and HashiCorp Vault for Secrets Management
- (Minor) GDPR Compliance options with User Anonymization, local data management, and account deletion
- (Major) Implement Two-Factor Authentication (2FA)
-
Devops
- (Major) Infrastructure setup for log management
- (Minor) Monitoring system
- (Major) Designing the Backend as Microservices
-
Graphics
- (Major) Use of advanced 3D techniques
-
Accessibility
- (Minor) Support on all devices
- (Minor) Expanding Browser compatibility
- (Minor) Multiple language support
- (Minor) Add accessibility for visually impaired users
- (Minor) Server-Side Rendering (SSR) integration
-
Server-Side Pong
- (Major) Replace basic pong with server-side pong and implementing an API
- (Major) Enabling pong gameplay via CLI against web users with API integration
First off, you'll need to fill a .env
file. You can use the .env.example
file as a template, or if you're lazy, just:
./scripts/create_env_files.sh
To start everything, simply run:
# with modern compose
docker compose up --build -d
# or with legacy cli
docker-compose up --build -d
Alternatively, a GNU make Makefile
is provided, with the up
and down
rules, for your convenience.
This project is released under the ISC License.