Skip to content

aliBenhenia/ft_transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42ft_transcendence

🎮 Call of Pong: Advanced Paddlefare

Call of Pong is a fully functional, responsive, and secure single-page web application built from scratch. It combines back-end and front-end technologies to deliver a seamless gaming experience, emphasizing real-world concepts like authentication, data persistence, real-time communication, and user interface design.


✨ Key Features

User Interaction

  • Create and manage your account.
  • Update profile information (name, profile picture, etc.).
  • View your game history and other users' profiles.
  • Add friends, block users, and send direct messages.
  • Invite friends to play games.
  • Live chat in lobbies.

Security

  • Passwords are hashed for secure storage.
  • Protected against SQL injections and XSS attacks.
  • Uses HTTPS and WSS for secure communication.
  • Input validation on both front-end and back-end.

Performance

  • Server-Side Rendering (SSR) for faster loading and improved performance.
  • Cross-browser support for Chrome and Firefox.

🛠️ Technologies Used

  • Languages: Python, Typescript, HTML, CSS, Shell Script,redux,axios
  • Frameworks: Django
  • Database: PostgreSQL
  • Tools: Docker Compose

🚀 Getting Started

Prerequisites

  • Ensure Docker Compose is installed. You can install it via Docker Desktop.

Steps to Run

  1. Clone the repository:
    git clone https://github.com/aliBenhenia/ft_transcendence
  2. Navigate to the project directory:
    cd ft_transcendence
  3. Start the application using Docker Compose:
    docker compose up
  4. Open your browser (Chrome or Firefox) and visit:
    https://localhost:8443/
    
    • Note: The site uses a self-signed certificate. You can safely proceed past the security warning.

🔧 Areas for Improvement

While the project is functional, there are areas that could be enhanced:

  • Refactor Consumers' logic for better efficiency.
  • Reorganize the code layout for improved maintainability.
  • Optimize front-end code, particularly in the lobby JavaScript files.
  • Improve overall application performance.

📖 Topics Covered

  • Full-stack development
  • Single-page application
  • Authentication
  • Real-time communication
  • Data persistence
  • Artificial intelligence
  • Asynchronous operations
  • Containerization
  • Security
  • Teamwork

👨‍💻 My Role

I contributed to the project in various ways, including:

  • Implementing chat functionality.
  • Creating Docker files.
  • Working on both back-end and front-end.
  • Integrating components and debugging issues.