Skip to content

Online Ping Pong Game with Real-Time Chat and Multiplayer Gameplay

Notifications You must be signed in to change notification settings

hmellahi/PINK-PONG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PINK PONG Project

Project Overview

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.

PINK PONG Project

Game Demo

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.

Technology Stack

This project employs a range of cutting-edge technologies:

Vue Vue 3: Frontend framework for building user interfaces.
TailwindCSS Tailwind CSS: Styling library for modern and responsive user interfaces.
NestJS Nest JS: Backend framework for building the server-side application logic.
PostgreSQL Postgres: Database for efficient data storage.
JavaScript WebSockets: Real-time communication for online gameplay and chat.
TypeScript TypeScript: Superset of JavaScript with static typing for enhanced development.

Installation

To run the PINK PONG project locally, follow these steps:

  1. Ensure Docker is installed on your system. Refer to the Docker documentation for installation instructions.
  2. Clone the project repository to your local machine.
  3. 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.

Key Features

Game

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.

User Account

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.

Chat

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.

Security Concerns

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.

About

Online Ping Pong Game with Real-Time Chat and Multiplayer Gameplay

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published