Skip to content

๐Ÿ“ feature-rich web application inspired by the classic Pong game

Notifications You must be signed in to change notification settings

okbrandon/ft_transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ ft_transcendence

ft_transcendence is the ultimate common core project from the 42 School that challenges you to build a feature-rich web application from scratch, inspired by the classic game Pong.

Top used language GitHub last commit

๐Ÿ“š Table of Contents

๐Ÿ“ฃ Introduction

ft_transcendence is a full-stack project where the goal is to create an online platform for playing the classic game Pong, complete with modern enhancements. This project required implementing:

  • A real-time multiplayer gaming experience.
  • A robust backend and responsive frontend.
  • Key features like matchmaking, tournaments, user authentication, and more.

This was a capstone project for the 42 School Common Core, pushing the boundaries of creativity, technical expertise, and software engineering.

๐Ÿ“ฆ Deploying

Warning

Ensure you have Docker installed and configured properly before proceeding. The project is designed to run in a containerized environment.

  1. Clone the repository from GitHub:

    git clone https://github.com/okbrandon/ft_transcendence.git
  2. Configure your environment variables:

    cp .env.example .env
    nvim .env
  3. Build and run the project:

    make

Note

This command will set up the entire environment, including the frontend, backend, and database, as specified in the project requirements. The frontend should be accessed by your computer hostname followed by the port 8888, like so: https://hostname:8888. We also provide a ready to use k8s deployment which you can install with kubectl install -f docs/deploy-k8s.

๐Ÿ“ Usage

Here are the main commands for managing the project:

  • Start the application

    make up
  • Stop the application

    make down
  • Clean the application

    make fclean
  • Access logs

    make [logs|logs-backend|logs-frontend|logs-statcruncher|logs-harvester|logs-postgres]

๐ŸŽฎ Features

Our ft_transcendence project includes the following features:

  1. Real-Time Pong Game
    • Play Pong online against other players or AI opponents.
    • Supports remote gameplay with real-time synchronization.
  2. User Authentication
    • OAuth2 integration for secure sign-in (e.g., 42 intra authentication).
    • Two-factor authentication (2FA) for enhanced security.
  3. User Profiles and GDPR Compliance
    • View match history, statistics, and achievements.
    • Add friends, track their online status, and manage personal data in compliance with GDPR.
  4. Live Chat
    • Real-time messaging with other players.
    • Invite friends to matches via chat.
  5. Multilingual Support
    • Interface available in multiple languages to cater to a diverse audience.
  6. 3D Graphics
    • Enhanced visuals with Three.js/WebGL for an immersive gaming experience.
  7. Server-Side Pong
    • Backend-controlled gameplay logic with API integration for seamless interaction.
  8. Backend and Database
    • Robust backend built with Django and PostgreSQL for data management and scalability.
  9. AI Opponent
    • Intelligent AI players to challenge users, adding depth to single-player mode.

๐Ÿ“Ž References

and some more docs...

โฌ† Back to Top

๐ŸŒ Meta

evmorvan โ€“ evmorvan@student.42nice.fr
hanmpark โ€“ hanmpark@student.42nice.fr
kquetat- โ€“ kquetat-@student.42nice.fr
bsoubaig โ€“ bsoubaig@student.42nice.fr

About

๐Ÿ“ feature-rich web application inspired by the classic Pong game

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published