Skip to content

A web application focused on replicating the classic Pong game. It includes features like real-time multiplayer gameplay, tournaments, and user management for a competitive and engaging experience.

Notifications You must be signed in to change notification settings

josephcheel/42-ft_transcendence

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ft_transcendence |  42 Cursus Complete

A web application focused on replicating the classic Pong game. It includes features like real-time multiplayer gameplay, tournaments, and user management for a competitive and engaging experience.

game.mov

Warning

🔴MORE VIDEOS AND IMAGES BELOW AT THE GALLERY SECTION!🖼️🖼️🖼️

Table of Contents

Features

  • Backend powered by Django
  • Frontend built with Vue.js and styled using Bootstrap
  • Data storage using PostgreSQL database
  • Blockchain integration for secure and transparent tournament results
  • Real-time gameplay with WebSockets for remote players
  • Tournaments and local match support for competitive and casual play
  • Friends system to connect and play with others
  • User & game statistics dashboards for insightful analytics
  • Log management via the ELK Stack (Elasticsearch, Logstash, Kibana)
  • Monitoring & alerting with Prometheus and Grafana
  • Microservices architecture with RESTful APIs
  • Responsive design for seamless use across devices
  • Multilingual support for a global user base

Installation and Configuration

📦 Prerequisites for Installation

Before installing and running the project, make sure the following are available on your system:

  • Docker
  • Docker Compose
  • Make (for running setup commands)
  • .env file with the required environment variables

1. Copy the env_sample as .env and change whatever you consider necessary

2. (OPTIONAL) Set a variable if you want to be available to your network. If not set, it defaults to localhost.

export IP_ADDR="{YOUR_IP}"

3. (OPTIONAL) You can also change the SSL_CERT_FILE and SSL_CERT_KEY in the .env to add your own certificate paths. If you don't specify them, a self-signed certificate (selfsigned.crt and selfsigned.key) will be generated by default.

SSL_CERT_FILE="{YOUR_FILE_CRT_PATH}"
SSL_CERT_KEY="{YOUR_FILE_KEY_PATH}"

4. Execute

make

Usage

Note

If you completed step 2 of the Installation and Configuration, use the first option below. if you set your own IP_ADDR environment variable then access via:

https://{YOUR_IP}:8000 
https://{YOUR_IP}:4000

if you have not set IP_ADDR then use:

https://localhost:8000 
https://localhost:4000

Important

If you did not set your own certificate, a self-signed one will be generated. This may trigger a warning that the connection is not secure — it's safe to proceed. Open both URLs and accept the certificate.

Gallery

A few example of the application showing what our project can do.


register.mov

Register preview


game-phone.mov

Game on Phone


Games Page


Game Screenshot

Friends

Friends Page

About

A web application focused on replicating the classic Pong game. It includes features like real-time multiplayer gameplay, tournaments, and user management for a competitive and engaging experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 51.0%
  • Vue 26.0%
  • JavaScript 16.0%
  • Shell 3.9%
  • Makefile 1.1%
  • Dockerfile 1.1%
  • Other 0.9%