Table of Contents
This is the last group project of the 42 core curriculum and arguably the biggest one. It is a full-stack web application that provides an engaging and interactive platform where users can enjoy a game of traditional Pong. It is designed with a modern and user-friendly interface offering a seamless experience for gaming and social interactions. This project was done in collaboration with Gilbert, Joko, Sonja and Anahi
- API Key from 42
- Docker/Docker-compose
To run the project, you need a .env file, I provided you with an example file inside of ./docker/ but you still need to put in your API key there. It should look something like this
FORTYTWO_APP_ID="u-s0a2ud-exdc4c4502170a03960f0678cc960072f7bab69021e09b10a9b80adfde43a5150"
FORTYTWO_APP_SECRET="s-s0a2ud-459dc0ce839266e939babac417fae1fb0be00b9443029c849693534e67394032"
- Clone the repo
git clone https://github.com/42sin/ft_transcendence.git && cd ft_transcendence
- Compile the project
make
- Connect
localhost:3000/
For testing purposes, it will only run on your local system. It can also be run online, so multiple people at different locations can connect and play but you would need to change some of the configuration files and generate a new API key.
Pong Gameplay
Play the classic game of Pong on 3 different mapsChat System
Engage in group or private chats with other usersHighscore Tab
Ranking of the best playersUser Profile
See their stats, add them as a friend or block them2FA Authentication
Improve your account security with Google Authenticator42 API Integration
Sign in with your 42 API credentialsThemes
Choose one of 3 Color Themes to change the websites feeling
/JOIN #CHANNELNAME (PASS)
Create or Join an existing channel with or without a password/TALK_TO USERNAME
Private message a user/KICK #CHANNELNAME USERNAME
Kick a User from a channel/BAN #CHANNELNAME USERNAME
Ban a User from a channel/PART #CHANNELNAME
Leave a channel/DELETE #CHANNELNAME
Delete a channel/CHANGE_PASSWORD #CHANNELNAME (PASS)
Change or remove the password of a channel/UNMUTE
OR/MUTE #CHANNELNAME USERNAME
Mute/Unmute a user of a channel/UNBLOCK
OR/BLOCK USERNAME
Block/Unblock a user/ADD_ADMIN #CHANNELNAME USERNAME
Give someone admin privileges/INVITE
OR/ACCEPT USERNAME
Invite/Accept to a game
Change your profile picture
Change your username
Activate 2FA with Google Authenticator
Add/Delete Friends
Block/Unblock users
Matchhistory
Winrate as %
To start a game you need to choose the map you want to play and join the waiting room. If there is someone already waiting you can join a game with them. Otherwise you will create a game and wait until someone joins.
z2q2s1.mp4
General commands can be used without being in a channel but for the chat specific commands you need to be in a channel of course.
9e8adx1.mov
Here you can change your own profile or see the stats of other users and add/delete or block/unblock them with the UI. Much easier than using the chat right?
ab4i3s.mp4
Distributed under the MIT License. See LICENSE
for more information.