Skip to content

swaan-miller/ft_transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ft_transcendence

Vue.js NestJS Typescript Postgres Docker

Codam [42 Network] group project: this full stack web application offers a real-time multiplayer Pong game with additional features such as chat functionality and a friends system that allows players to connect.

This project is a collaborative effort between Michelle Jiam, Niks Hariman, Nilo van Winden, Sanne Albreghs and Swaan Miller.

Project requirements

  • The backend must be written in NestJS.
  • The frontend must be written in a TypeScript framework.
  • The usage of a PostgreSQL database is required.
  • The website must be a single-page application and the user should be able to use the back and forward buttons in the browser.
  • The website should be responsive and offer the best user experience possible.
  • Launch the application by a single call to docker-compose up --build.

Security concerns

  • Any password stored in the database must be hashed.
  • The website must be protected against SQL injections.
  • Implement server-side validation for forms and any user input.

User Account

  • The user must login using the OAuth system of 42 intranet.
  • The user should be able to choose a unique name, upload an avatar and enable two-factor authentication.
  • The user should be able to add other users as friends and see their current status.
  • Stats have to be displayed on the user profile.
  • Each user should have a match history including 1v1 games and a ladder. Anyone who is logged in should be able to consult it.

Chat

  • The user should be able to create channels (chat rooms) that can be either public, or private, or protected by a password.
  • The user should be able to send direct messages to other users.
  • The user should be able to block other users.
  • The user who has created a new channel is automatically set as the channel owner until they leave it. The channel owner can set a password required to access the channel, change it, and also remove it. The channel owner is a channel administrator. They can set other users as administrators. A user who is an administrator of a channel can kick, ban or mute (for a limited time) other users, but not the channel owners.
  • The user should be able to invite other users to play a Pong game through the chat interface.
  • The user should be able to access other players profiles through the chat interface.

Game

  • Users should be able to play a live Pong game versus another player.
  • There must be a matchmaking system: the user can join a queue until they get automatically matched with someone else.
  • The game must be faithful to the original Pong (1972).
  • You must offer some customization options.

Login page

Screen Shot 2023-03-23 at 4 40 55 PM

Homepage

Screen Shot 2023-03-23 at 4 42 24 PM

Account settings

Screen Shot 2023-03-23 at 4 28 47 PM

2FA

Screen Shot 2023-03-23 at 4 48 30 PM

Pong game

Screen Shot 2023-03-23 at 4 26 52 PM

User page

Screen Shot 2023-03-23 at 4 31 29 PM

Leaderboard

Screen Shot 2023-03-23 at 4 36 43 PM

Chat - dm's

Screen Shot 2023-03-23 at 4 20 51 PM

Friends

Screenshot 2023-03-24 at 11 45 01

Responsive menu

Screenshot 2023-03-24 at 11 40 16