Ft_transcendance is a 42 school team project where we must build a website where users can create accounts via the 42 API, play a real-time multiplayer game of Pong, and chat in public and private chat rooms.
This project has been archived in the state it was in at the time of evaluation.
This project is made with:
To launch ft_transcendance, you need docker and docker-compose.
An example environment file is provided. It should be filled out and renamed .env
before building the project.
To build ft_transcendance, clone the project and cd into it:
git clone [email protected]:Ellana42/ft_transcendance.git && cd ft_transcendance
Then run the build command (requires sudo
permissions):
make
Once the front and backend have both compiled, you can view the website at: https://localhost:8080
.
Other useful commands after the build is complete:
make pop
: run a python script to populate the database with users, match history and chat rooms.make blog
: view the backend logsmake flog
: view the frontend logs
To shutdown the ft_transcendance server:
make down
To clear the database and docker containers and images:
make fclean
Ft_transcendance is a single-page application which includes a real-time multiplayer game of pong and a live chat.
On this website, users are able to:
- create an account via the 42 OAuth API, by logging in with their 42 student account,
- enable or disable 2 factor authentication (with, for example, Google Authenticator),
- customize their profile with a unique username and avatar,
- add and remove friends,
- block or unblock users,
- keep track of their stats, match history and leaderboard ranking
The game of Pong features:
- a responsive, 1v1, 2D multiplayer game of pong,
- a matchmaking system,
- the ability to invite other players to a game,
- the ability to watch other player's matches live,
- customization of the appearance of the game,
- reconnect to the current game in case of network issues
The live chat features:
- creation of private and public chats, as well as direct messages between two users,
- the ability to block individual users so as not to see messages from blocked accounts,
- the ability for chat room creators to manage their chat rooms:
- promote others as operators,
- add or change the chat room password,
- toggle the chat room from public to private and vice versa,
- the ability for chat room operators and creators to:
- kick participants,
- ban participants,
- mute other users for a limited time
- a context menu enabling users to challenge others to a game of pong, invite them to a chat room, add them as friends, etc.
Light and dark modes available
Made by mkaploun, mcombeau and iazimzha