ft_transcendence is the ultimate common core project from the 42 School that challenges you to build a feature-rich web application from scratch, inspired by the classic game Pong.
ft_transcendence is a full-stack project where the goal is to create an online platform for playing the classic game Pong, complete with modern enhancements. This project required implementing:
- A real-time multiplayer gaming experience.
- A robust backend and responsive frontend.
- Key features like matchmaking, tournaments, user authentication, and more.
This was a capstone project for the 42 School Common Core, pushing the boundaries of creativity, technical expertise, and software engineering.
Warning
Ensure you have Docker installed and configured properly before proceeding. The project is designed to run in a containerized environment.
-
Clone the repository from GitHub:
git clone https://github.com/okbrandon/ft_transcendence.git
-
Configure your environment variables:
cp .env.example .env nvim .env
-
Build and run the project:
make
Note
This command will set up the entire environment, including the frontend, backend, and database, as specified in the project requirements.
The frontend should be accessed by your computer hostname followed by the port 8888, like so: https://hostname:8888
.
We also provide a ready to use k8s deployment which you can install with kubectl install -f docs/deploy-k8s
.
Here are the main commands for managing the project:
-
Start the application
make up
-
Stop the application
make down
-
Clean the application
make fclean
-
Access logs
make [logs|logs-backend|logs-frontend|logs-statcruncher|logs-harvester|logs-postgres]
Our ft_transcendence project includes the following features:
- Real-Time Pong Game
- Play Pong online against other players or AI opponents.
- Supports remote gameplay with real-time synchronization.
- User Authentication
- OAuth2 integration for secure sign-in (e.g., 42 intra authentication).
- Two-factor authentication (2FA) for enhanced security.
- User Profiles and GDPR Compliance
- View match history, statistics, and achievements.
- Add friends, track their online status, and manage personal data in compliance with GDPR.
- Live Chat
- Real-time messaging with other players.
- Invite friends to matches via chat.
- Multilingual Support
- Interface available in multiple languages to cater to a diverse audience.
- 3D Graphics
- Enhanced visuals with Three.js/WebGL for an immersive gaming experience.
- Server-Side Pong
- Backend-controlled gameplay logic with API integration for seamless interaction.
- Backend and Database
- Robust backend built with Django and PostgreSQL for data management and scalability.
- AI Opponent
- Intelligent AI players to challenge users, adding depth to single-player mode.
and some more docs...
evmorvan โ evmorvan@student.42nice.fr
hanmpark โ hanmpark@student.42nice.fr
kquetat- โ kquetat-@student.42nice.fr
bsoubaig โ bsoubaig@student.42nice.fr