Welcome to Pong Masters – a full-stack web application project inspired by the classic Pong game, designed as part of the 42 curriculum. This project challenges you to build a real-time, multiplayer online Pong platform with robust user management, security, and modern web development practices.
Pong Masters is an online platform where users can:
- Play real-time Pong matches and tournaments against other players.
- Compete in organized tournaments with matchmaking.
- Manage user profiles, friends, and chat with others.
- Experience a secure and responsive single-page application.
The project emphasizes modularity, security, and extensibility, providing a foundation for further enhancements.
- Real-Time Pong Gameplay: Play classic Pong in your browser, either head-to-head or in tournaments.
- Tournaments & Matchmaking: Organize and participate in tournaments with automated matchmaking and clear player progression.
- User Management: Register, authenticate (including optional two-factor authentication), edit profiles, and manage friends.
- Live Chat: Communicate with other players in real time.
- Security: Passwords are securely hashed, HTTPS is enforced, and protection against common vulnerabilities (SQL injection, XSS) is implemented.
- Single-Page Application: Seamless navigation with browser history support.
- Dockerized Deployment: Launch the entire stack with a single command for easy setup and portability
| Category | Technology |
|---|---|
| Backend | Django |
| Frontend | Javascript & Bootstrap |
| Database | PostgreSQL |
| Server-side Cache | Redis |
| Containerization | Docker |
| Authentication | JWT |
| Web Server | Nginx |
| Blockchain | Solidity & Etherium |
- Clone the repository:
git clone https://github.com/JorFik/Pong_Masters.git ft_transcendence- Go to the new repository in your machine
cd ft_transcendence- Finally create and run the project
makeThis will generated all necessary files to create a basic Pong Master experience, for a more in depth experience, please follow the instructions below.
For the next step, it is assumed that you cloned the repository and navigated to it.
-
Generate a template of all secrets
make all_secrets
In order to be able to acccess the admin dashboard, you will need to modify the generated secret files.
-
Navigate with your favorite IDE, cli tool, or any text editor to secrets/django_superuser.env, you should find a file like this:
DJANGO_SUPERUSER_USERNAME=
DJANGO_SUPERUSER_EMAIL=
DJANGO_SUPERUSER_PASSWORD=- Fill the empty credentials
DJANGO_SUPERUSER_USERNAME=admin
DJANGO_SUPERUSER_EMAIL=[email protected]
DJANGO_SUPERUSER_PASSWORD=V3ry_s3cUr3_p4ssw0rd!Please do not use those credentials, they are meant to be just an example.
⚠️ WARNING Never commit sensitive credentials to version control.
- The app is ready to run.
make- You should start seeing logs from the containers appear, your Pong Masters is now running, enjoy it ;]
Simply open your browser of choice and navigate to the homepage and explore.
There is more content after you login, you can do that with your admin credentials or sign up a new account.
To stop the app at any point you can CTR+C in the terminal with the logs, or
make stopin another terminal.
This project is licensed under the GNU General Public License v2.0. See the LICENSE file for details.
Project inspired by the 42 curriculum and built by JFikents, AWeizman, PAdam and AJakob Special thanks to the 42 community for guidance and support.
For questions or support, open an issue on GitHub or contact the maintainers directly.
Enjoy playing Pong – and happy hacking!