Skip to content

Pong Masters is a real-time, multiplayer web application inspired by the classic Pong game. Built with modern technologies like Django, PostgreSQL, and Docker, it offers seamless online gameplay, tournaments, user management, and server-side pong; all wrapped in a secure and responsive single-page experience. Designed as part of the 42 curriculum

License

Notifications You must be signed in to change notification settings

JorFik/Pong_Masters

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pong Masters

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.

Project Overview

Pong Masters is an online platform where users can:

  1. Play real-time Pong matches and tournaments against other players.
  2. Compete in organized tournaments with matchmaking.
  3. Manage user profiles, friends, and chat with others.
  4. Experience a secure and responsive single-page application.

The project emphasizes modularity, security, and extensibility, providing a foundation for further enhancements.

Features

  • 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

Technology Stack

Category Technology
Backend Django
Frontend Javascript & Bootstrap
Database PostgreSQL
Server-side Cache Redis
Containerization Docker
Authentication JWT
Web Server Nginx
Blockchain Solidity & Etherium

Quickstart

  1. Clone the repository:
git clone https://github.com/JorFik/Pong_Masters.git ft_transcendence
  1. Go to the new repository in your machine
cd ft_transcendence
  1. Finally create and run the project
make

This will generated all necessary files to create a basic Pong Master experience, for a more in depth experience, please follow the instructions below.

Configure Admin credentials:

For the next step, it is assumed that you cloned the repository and navigated to it.

  1. 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.

  2. 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=
  1. 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.

  1. The app is ready to run.
make
  1. You should start seeing logs from the containers appear, your Pong Masters is now running, enjoy it ;]

Access the application:

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.

Stopping the application:

To stop the app at any point you can CTR+C in the terminal with the logs, or

make stop

in another terminal.

License

This project is licensed under the GNU General Public License v2.0. See the LICENSE file for details.

Credits

Project inspired by the 42 curriculum and built by JFikents, AWeizman, PAdam and AJakob Special thanks to the 42 community for guidance and support.

Contact

For questions or support, open an issue on GitHub or contact the maintainers directly.

Enjoy playing Pong – and happy hacking!

About

Pong Masters is a real-time, multiplayer web application inspired by the classic Pong game. Built with modern technologies like Django, PostgreSQL, and Docker, it offers seamless online gameplay, tournaments, user management, and server-side pong; all wrapped in a secure and responsive single-page experience. Designed as part of the 42 curriculum

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • Python 42.3%
  • JavaScript 35.2%
  • HTML 11.0%
  • CSS 8.2%
  • Shell 1.4%
  • Makefile 1.0%
  • Solidity 0.9%