Skip to content

Repo for ft_transcendance, the last project of the 42School common core

License

Notifications You must be signed in to change notification settings

C18H24O2/ft_transcendence

Repository files navigation

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.

Project structure

  • scripts/ somewhat useful random stuff 👍
  • components/ what makes this shit run
    • monitoring/
      • 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

Chosen modules

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

Usage

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.

License

This project is released under the ISC License.

About

Repo for ft_transcendance, the last project of the 42School common core

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •