사용기술

backend (latest stable version library or framework)

-nestjs / -ts

-postgreSQL

frontend ("")

-ts

-SPA

  1. 보안

-모든 비밀번호는 db에 암호화 저장

-SQL 주이베 대해 보호 되어야 한다.(?)

-서버쪽 인풋데이터에 대한 유효성 검증로직

3.유저

-42 oauth login

-유저의 이름은 유일하며 브라우저 표시

-아바타 추가 (없으면 기본아바타)

-유저는 two-factor authentication (google authenticator or sending a text message to their phone)

-유저는 다른 유저를 친구로 셋팅 가능

-유저의 현재상태 (online, offline, in a game, etc)

-유저 프로필(wins, losses, ladder level, achievements etc)

-유저 의 match history(ladder... etc)

*로그인 한사람은 모두 consult가능해야한다?

4.채팅

-유저는 channels(chat room) 생성가능(public, private, protected by password)

-direct message

-block (유저가 block한 유저의 메시지 안보여줌)

-새 채널 만든 유저는 channel owner됌

-channel owner는 해당방 password(셋팅, 수정, 삭제)

-channel owner는 channel adminnistrator이고, 다른 유저를 administrator로 만들기가능

-adminstrators들은 해당 방 내 유저를 ban or mute가능 (제한된시간)

-chat interface 통해서 pong게임에 다른 유저 초대 가능

-chat interface 통해서 다른 유저의 프로필에 접근 가능해야함.

5.게임

-한유저는 다른 유저와 실시간 게임 가능해야함

-matchmaking system = 유저는 queue 자료구조를 따라서 다른 유저와 자동 매칭된다

-2d 든 3d든 모양상관없이 original pong 모양이면 됌.

-game must be responsive(반응형웹?)

-제3의 유저는 다른 유저들의 게임환경을 관찰할 수 있음

*unexprected disconnection or lag 등 네트워크 이슈에 대해 최고의 유저환경을 제공해야함