Skip to content
@42Seoul-LastDance

PongMates

Pongmates

ft_transcendence assignment from 42seoul

Real-time Multiplayer Pong Game with Chat, OAuth

Docker Postgres NestJS NextJS Unity WebGL Socket.io



Login [OAuth]

  • user는 42 intranet의 OAuth 시스템을 이용하여 로그인할 수 있어야 한다.



Chatting

  • user는 channel(chat rooms)를 만들 수 있어야 한다. 종류는 public, private 혹은 password로 보호되는 방이다.
  • 새로운 channel을 만든 user는 자동으로 channel owner가 된다.
    • channel owner는 channel에 들어오기 위한 비밀번호를 설정, 변경, 삭제할 수 있다.
    • channel owner는 administrator이기도 하다. 또한 다른 User를 administrator로 설정할 수 있다.
    • channel의 administrator는 다른 user를 kick, ban, mute(제한 시간동안) 할 수 있다. 하지만 channel owner는 불가하다.
  • user는 채팅 인터페이스를 통해 다른 user를 Pong Game으로 초대할 수 있어야 한다.
  • user는 채팅 인터페이스를 통해 다른 플레이어의 프로필을 볼 수 있어야 한다.
Screen Shot 2023-11-10 at 3 27 14 PM
Screen Shot 2023-11-10 at 3 27 41 PM



Game

  • matchmaking system이 있어야 한다: user는 다른 user와 자동매치가 되기전까지 queue에 join할 수 있다.
  • 게임은 original Pong에 부합해야하며 canvas 게임 혹은 3D로 렌더된 게임이어도 된다.
  • 커스터마이징 옵션을 제공해야한다. (power-up, different map). 하지만 user가 항상 골라야 하는 것이 아니라 원하는 feature가 없을 땐 기본 버전을 선택할 수 있어야 한다.
Screen Shot 2023-11-10 at 3 28 54 PM

ezgif com-video-to-gif (4)



Friend

  • user는 다른 user들에게 direct message를 보낼 수 있어야 한다.
  • user는 다른 user를 차단할 수 있어야 한다. 이러한 방법으로, 차단한 user의 메시지를 볼 수 없어야 한다.
  • user는 다른 user를 친구로 추가하고 그들의 현재 상태를 볼 수 있다. (online, offline, in a game, 등등)
Screen Shot 2023-11-10 at 3 26 42 PM Screen Shot 2023-11-10 at 3 25 46 PM



Profile

  • user는 website에 표시될 unique한 nickname을 선택할 수 있다.
  • user는 프로필 이미지를 업로드할 수 있다. 업로드 하지 않는 경우 디폴트 이미지가 설정되어야한다.
  • user는 two-factor authentication을 활성화하고 이용할 수 있다. (Google Authenticator 또는 text message를 보내는 것)
  • 각 user는 자신만의 Match History를 가지고 있어야 하며 로그인한 사람이라면 누구나 볼 수 있어야 한다. (1대1 게임, ladder 게임 등 유의미한 것들.)
Screen Shot 2023-11-10 at 3 32 03 PM



Security Concerns

  • 데이터베이스에 저장되는 비밀번호는 hashed 상태로 저장되어야 한다.
  • 웹 사이트는 SQL injection으로부터 보호되어야 한다.
  • 사용자의 입력이나 form에 대해 server-side 검증을 구현해야 한다.
  • (모든 보안 관련한 API key, credential, env 변수들은 .env 파일에 로컬 상태로 보관되어야한다.)



Game Socket Communication

Screen Shot 2023-11-10 at 4 48 57 PM

Popular repositories Loading

  1. Backend Backend Public

    Forked from 42Seoul-LastDance/ft_transcendence

    TypeScript 2

  2. ft_transcendence ft_transcendence Public

    A Real-time Multiplayer Pong Game Webapp with Chat, 42 OAuth.

    TypeScript 1 3

  3. Frontend Frontend Public

    Forked from 42Seoul-LastDance/ft_transcendence

    TypeScript

  4. .github .github Public

Repositories

Showing 4 of 4 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…