Skip to content

full-stack web application that reimagines the classic Pong game with modern web technologies and social features. Built with Django, PostgreSQL, and vanilla JavaScript, it offers real-time multiplayer gameplay, tournaments, and social networking capabilities.

Notifications You must be signed in to change notification settings

iurilandolt/ft_transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ft_transcendence

Final project of the 42 Common Core - A real-time multiplayer Pong web application with social features.

Overview

ft_transcendence is a full-stack web application that reimagines the classic Pong game with modern web technologies and social features. Built with Django, PostgreSQL, and vanilla JavaScript, it offers real-time multiplayer gameplay, tournaments, and social networking capabilities.

Key Features

🎮 Game Features

  • Real-time multiplayer Pong using WebSocket communication
  • Tournament system with bracket-style competitions
  • AI opponent trained with NEAT (NeuroEvolution of Augmenting Topologies)
  • 3D game visualization using Three.js
  • Server-side game engine for fair play
  • Global ranking ladder system

👤 Social Features

  • User profiles with customizable avatars
  • Friend system with request management
  • Real-time online status tracking
  • Detailed match history and statistics
  • Global leaderboard

🔐 Security

  • TLS encryption for all communications
  • JWT-based authentication
  • CSRF protection
  • GDPR-compliant data handling
  • Two-factor authentication (2FA)
  • Secure password recovery system

Technical Stack

Backend

  • Framework: Django + Django Channels
  • Database: PostgreSQL
  • Authentication: JWT + OAuth2 (42 School integration)
  • WebSocket: Django Channels + ASGI
  • AI: NEAT-Python for AI opponent

Frontend

  • Core: Vanilla JavaScript (No frameworks)
  • UI Framework: Bootstrap
  • 3D Graphics: Three.js
  • Real-time: WebSocket API

Infrastructure

  • Server: Gunicorn + Daphne
  • Reverse Proxy: Nginx
  • Containerization: Docker + Docker Compose

Screenshots

1 2 3 4 5

Architecture Overview

REST API Design

graph TD
    Client --> |HTTP/HTTPS| Nginx
    Nginx --> |Proxy Pass| Gunicorn
    Nginx --> |WebSocket| Daphne
    Gunicorn --> Django
    Daphne --> Channels
    Django --> PostgreSQL
    Channels --> PostgreSQL
Loading

Game Architecture

graph LR
    Client --> |WebSocket| GameServer
    GameServer --> |Physics Engine| GameState
    GameServer --> |AI Model| AIOpponent
    GameState --> |Update| Client
    Tournament --> GameServer
Loading

Colaborators

@iurilandolt

@goncalo1021pt

@AndrePortfolio

@Ekkoz897

About

full-stack web application that reimagines the classic Pong game with modern web technologies and social features. Built with Django, PostgreSQL, and vanilla JavaScript, it offers real-time multiplayer gameplay, tournaments, and social networking capabilities.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published