ft_transcendance is a full-stack web application designed as a modern multiplayer Pong game with authentication, chat, and matchmaking features. This project follows the 42 School guidelines and aims to provide a seamless gaming experience with real-time interactions.
- User Authentication: Secure login and registration using OAuth2.
- Multiplayer Pong: Play against other users in real-time.
- Chat System: Engage in private and public conversations.
- Matchmaking System: Find and play with opponents online.
- Customization: Change the color theme, with earned colors through achievements
- User Profiles: Track player stats and history.
- 2FA Security: Two-factor authentication for enhanced account protection.
- Admin: View all sort of information in real time
- Frontend: Javascript (Bootstrap, THREE.Js)
- Backend: Django (python framework)
- Database: PostgreSQL
- Logging: ElasticSearch (Kibana), CAdvisor, Grafana, Prometheus and Node Exported
- Authentication: OAuth2, JWT, Two-Factor Authentication (2FA)
- Containerization: Docker
-
Clone the repository:
git clone https://github.com/pluieciel/transcendance.git cd ft_transcendance
-
Configure the environment variables:
- In the root of the project:
./init.sh
ormake init
- Copy the
.env.example
file to.env
indocker/
- Add your secrets in
OAUTH_CLIENT_ID_FILE
andOAUTH_CLIENT_SECRET_FILE
if you want to use the 42 logging
- In the root of the project:
-
Start the application:
- Using the Makefile
make all
- Manually
docker-compose -f ./docker/docker-compose.yml -p $(NAME) build docker-compose -f ./docker/docker-compose.yml -p my_project up -d
- Using the Makefile
- Open your browser and navigate to
https://localhost:9000
. - Register or log in using OAuth2.
- Start a game or chat with other users.