/42_ft_transcendence

The final boss of 42 Common Core: a web application.

Primary LanguageHTML

Thumbnail

📒 About

This project was graded 115/100.

The 42 school's Common Core final project is called ft_transcendence. Leveraging technologies like Javascript, Django, Docker and more, ft_transcendence is designed to introduce students to the world of web development, by creating their own Web Application. Its purpose? To offer players the opportunity to play an old game of Pong :)

Transcendence is split into modules, each one approaching a different technology or concept. It's up to each team to decide which modules to tackle. As stated by this version of the subject, we chose the following modules:


📚 Click here to check the modules we chose

Web

  • Major module: Use a Framework to build the backend.
  • Minor module: Use a framework or a toolkit to build the frontend.
  • Minor module: Use a database for the backend.

User Management

  • Major module: Standard user management, authentication, users across tournaments.
  • Major module: Implementing a remote authentication.

Gameplay and user experience

  • Major module: Remote players

AI-Algo

  • Major module: Introduce an AI Opponent.
  • Minor module: User and Game Stats Dashboards

Cybersecurity

  • Major module: Implement Two-Factor Authentication (2FA) and JWT

Graphics

  • Major module: Use of advanced 3D techniques.

🥞 Tech Stack

HTML CSS Javascript Bootstrap ThreeJS PostgreSQL Python Django Docker NGINX Redis Figma JWT Websockets

🎥 Demos / Screenshots

Here, you'll find different demos, each one showcasing different areas and interactions.

New account Matured account
transcendence_signup_demo.mp4
transcendence_old_account_demo.mp4
Local Mode AI Mode
transcendence_local_demo.mp4
transcendence_ai_demo.mp4

Some features are not showcased due to being repetitive, so below you can find a list of screenshots that may cover unseen features of the application.


🖼️ Click here to check the screenshots

Auth

Screenshot from 2024-12-22 17-35-16 Screenshot from 2024-12-22 18-07-03 transcendence-15-03-59

Home page

transcendence-15-05-02

Game

transcendence-15-09-40 Screenshot from 2024-12-22 18-07-25 Screenshot from 2024-12-22 17-35-51

Tournaments

transcendence-16-06-43 transcendence-16-33-53 transcendence-16-34-06 transcendence-16-30-32 transcendence-16-30-36 transcendence-16-30-56

User Dashboard

transcendence-16-23-40 transcendence-16-24-28 transcendence-16-23-46 transcendence-16-34-33 transcendence-15-28-49


Note

Remote game mode (not showcased) takes 2 people, but from different computers, unlike Local game mode.

📦 Building

Important

You should have Docker and make installed.

After installing the required software, just run the following.

$ make

Other commands:

  • make clean - Deletes the whole database, database migrations and __pycache__ folders.

  • make prune - Same as running docker system prune.

  • make down - Stops the containers.

  • make ps - Lists the running containers.

  • make re - Same as running make down and make.

📝 Authorship