Skip to content

elbouzkri/transcendance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

778 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Transcendance

Transcendance Banner

Welcome to Transcendance, a high-performance, real-time multiplayer gaming platform. This project recreates the classic Pong game with modern web technologies, a robust microservices architecture, and a focus on security and observability.


🌟 Key Features

  • 🎮 Real-Time Gameplay: Seamless, low-latency Pong matches powered by WebSockets.
  • 🛡️ Advanced Security: Built-in WAF (ModSecurity), secret management via HashiCorp Vault, and Two-Factor Authentication (2FA).
  • 📊 Comprehensive Monitoring: Fully integrated ELK Stack (Elasticsearch, Logstash, Kibana) for real-time logging and system health tracking.
  • 👤 User Management: Detailed profiles, matchmaking system, and friend lists.
  • ✨ Premium UI/UX: A stunning frontend built with Next.js, Tailwind CSS, and 3D elements using Three.js.

🏗️ Architecture Overview

Transcendance is built as a microservices application, ensuring scalability and isolation.

graph TD
    subgraph "External"
        Internet(Internet)
    end

    subgraph "Infrastructure"
        Nginx[Nginx + ModSecurity WAF]
        Vault[HashiCorp Vault]
    end

    subgraph "Application Services"
        Frontend[Next.js Frontend]
        Backend[Django Backend]
        Redis[Redis Cache/PubSub]
        Postgres[(PostgreSQL)]
    end

    subgraph "Observability (ELK)"
        ES[(Elasticsearch)]
        LS[Logstash]
        KB[Kibana]
    end

    Internet --> Nginx
    Nginx --> Frontend
    Nginx --> Backend
    Backend --> Postgres
    Backend --> Redis
    Backend --> Vault
    
    Backend -.-> LS
    Postgres -.-> LS
    Redis -.-> LS
    Nginx -.-> LS
    
    LS --> ES
    ES --> KB
Loading

🛠️ Tech Stack

Component Technology
Frontend Next.js, React, Three.js, Tailwind CSS
Backend Django, Django Channels, DRF
Database PostgreSQL
Caching Redis
Security HashiCorp Vault, ModSecurity
Observability Elastic Stack (ELK)
Deployment Docker, Docker Compose

🚀 Getting Started

Prerequisites

Installation & Launch

  1. Clone the repository:

    git clone https://github.com/your-username/transcendance.git
    cd transcendance
  2. Build and start the services:

    make build
    make up
  3. Initialize Vault (if necessary):

    make init_vault
  4. Access the application:

    • Frontend: http://localhost:3000 (via Nginx proxy)
    • Kibana: http://localhost:5601
    • API Docs: http://localhost/api/docs/ (if enabled)

📖 Additional Documentation


📜 License

This project is developed as part of the 42 curriculum. All rights reserved.

About

FT Transcendence is a full-stack web application that allows users to sign up, chat in real-time, and compete in online ping-pong matches. It features secure user authentication, player profiles, matchmaking, and a competitive ranking system, built using Next and Django and WebSockets for real-time communication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors