I collaborated with my classmates to create an intuitive online ping pong game platform for our final school project. This platform features real-time chat capabilities and multiplayer gameplay, offering users the ability to challenge friends, join queues, and observe other players in action.
Please Note: The GIF demo above provides a visual overview of the PINK PONG project's gameplay and user interface. However, it's important to mention that any lag or performance issues visible in the GIF might not accurately represent the actual performance of the game.
This project employs a range of cutting-edge technologies:
To run the PINK PONG project locally, follow these steps:
- Ensure Docker is installed on your system. Refer to the Docker documentation for installation instructions.
- Clone the project repository to your local machine.
- Run
docker-compose up -d
command to start the application.
Once the application is built and launched, access it by visiting http://localhost:5678 in your web browser. If you encounter any issues during installation, please let me know.
The primary purpose is to play Pong against other players:
- Live Pong game playable on the website.
- Matchmaking system for automatic player pairing.
- Faithful representation of original Pong (1972) with potential customization options.
- The Game is Responsive
This project aims to provide an engaging user experience, combining real-time gameplay, social interaction, and security measures.
The user account functionality includes:
- OAuth login using the 42 intranet system.
- Unique user names and avatar uploads (with default avatar if not uploaded).
- Two-factor authentication using Google Authenticator.
- Friends list and real-time status tracking.
- Display of user statistics, achievements, ladder level, and match history.
The chat system offers the following features:
- Creation of public, private, or password-protected channels.
- Direct messaging between users.
- Blocking of users to prevent messages.
- Channel ownership with password protection and administration rights.
- Invitations to Pong games and access to player profiles.
To ensure security, the project addresses several concerns:
- Passwords stored in the database are hashed.
- Protection against SQL injections is implemented.
- Server-side validation for forms and user input is incorporated.
- Sensitive information is stored locally in a
.env
file.