Skip to content
This repository has been archived by the owner on Nov 30, 2024. It is now read-only.

42 school team project to create a responsive website with chat rooms and a multiplayer pong game.

Notifications You must be signed in to change notification settings

mcombeau/ft_transcendance

 
 

Repository files navigation

ft_transcendance

ft_transcendance 42 project badge

Ft_transcendance is a 42 school team project where we must build a website where users can create accounts via the 42 API, play a real-time multiplayer game of Pong, and chat in public and private chat rooms.

This project has been archived in the state it was in at the time of evaluation.

This project is made with:

Usage

Requirements

To launch ft_transcendance, you need docker and docker-compose.

An example environment file is provided. It should be filled out and renamed .env before building the project.

Building Ft_transcendance

To build ft_transcendance, clone the project and cd into it:

git clone [email protected]:Ellana42/ft_transcendance.git && cd ft_transcendance

Then run the build command (requires sudo permissions):

make

Once the front and backend have both compiled, you can view the website at: https://localhost:8080.

Other useful commands after the build is complete:

  • make pop: run a python script to populate the database with users, match history and chat rooms.
  • make blog: view the backend logs
  • make flog: view the frontend logs

Removing Ft_transcendance

To shutdown the ft_transcendance server:

make down

To clear the database and docker containers and images:

make fclean

Features

Ft_transcendance is a single-page application which includes a real-time multiplayer game of pong and a live chat.

User Account/Profile Features

On this website, users are able to:

  • create an account via the 42 OAuth API, by logging in with their 42 student account,
  • enable or disable 2 factor authentication (with, for example, Google Authenticator),
  • customize their profile with a unique username and avatar,
  • add and remove friends,
  • block or unblock users,
  • keep track of their stats, match history and leaderboard ranking

Pong Game Features

The game of Pong features:

  • a responsive, 1v1, 2D multiplayer game of pong,
  • a matchmaking system,
  • the ability to invite other players to a game,
  • the ability to watch other player's matches live,
  • customization of the appearance of the game,
  • reconnect to the current game in case of network issues

Chat Features

The live chat features:

  • creation of private and public chats, as well as direct messages between two users,
  • the ability to block individual users so as not to see messages from blocked accounts,
  • the ability for chat room creators to manage their chat rooms:
    • promote others as operators,
    • add or change the chat room password,
    • toggle the chat room from public to private and vice versa,
  • the ability for chat room operators and creators to:
    • kick participants,
    • ban participants,
    • mute other users for a limited time
  • a context menu enabling users to challenge others to a game of pong, invite them to a chat room, add them as friends, etc.

Screenshots

Home Page

Light and dark modes available

ft_transcendance home page with light and dark modes

Profile Page

ft_transcendance profile page ft_transcendance profile settings page

Pong Game Page

ft_transcendance game page with teal coloring ft_transcendance game page with teal coloring ft_transcendance leaderboard page

Chat Rooms

ft_transcendance chat room page ft_transcendance chat room page with settings ft_transcendance chat room page with context menu


Made by mkaploun, mcombeau and iazimzha

About

42 school team project to create a responsive website with chat rooms and a multiplayer pong game.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.9%
  • Python 2.3%
  • HTML 0.6%
  • JavaScript 0.3%
  • CSS 0.3%
  • Makefile 0.3%
  • Other 0.3%