/PinguPong

Let's enjoy pong1972 as an online web game.

Primary LanguageTypeScript

PINGUPONG 핑구퐁

pongu

소개

실시간 대전 핑퐁 웹 게임 프로젝트입니다.

기술 스택

구현 기능

  • Profil - 친구 추가/차단, DM, 2차비밀번호 설정/해제, PingPong 전적, 유저상태(오프라인, 온라인, 게임중)
  • PingPong - 실시간 매칭, 관전, 난이도 모드, 도전장기능
  • Chat - 기본방, 비밀방, 방장(강퇴, 밴, 음소거설정/해제)

Installation & Execution

프로젝트는 docker-compose로 구성되어 있습니다.

google api 또는 42api의 클라이언트 아이디와 시크릿키를 준비해야하며, 없다면 각 사이트에서 발급해야 합니다.

프로젝트를 실행시키는 방법은 다음과 같습니다.

  1. .env_template 파일을 통해 .env를 설정해줍니다. 설정해야 하는 항목은 다음과 같습니다.

    • POSTGRES_USER : 디비 초기화 유저.
    • POSTGRES_PASSWORD : 디비 초기화 유저 비번.
    • POSTGRES_ROOT_PASSWORD : 디비 초기화 루트 비번.
    • NESTJS_USER : nestjs에서 DB에 접속할 때 사용하는 유저 ID (POSTGRES_USER와 동일해야 함)
    • NESTJS_PASSWORD : nestjs에서 DB에 접속할 때 사용하는 유저 PW (POSTGRES_PASSWORD와 동일해야 함)
    • SERVER_HOST : 서버의 호스트 네임
    • AUTH_CLIENT_ID : 42api 클라이언트 ID.
    • ACCESS_SECRET : 42api 보안 secret key 및 JWT Token을 생성할 때 사용하는 비밀 문자열. (키가 없다면 복잡하게 설정해야 함)
    • AUTH_CALLBACK_URL : 42api 접근 성공시 받을 콜백주소.
    • GOOGLE_AUTH_CLIENT_ID : google api 클라이언트 ID.
    • GOOGLE_ACCESS_SECRET : google api 보안 secret key
    • GOOGLE_AUTH_CALLBACK_URL : google api 접근 성공시 받을 콜백주소.
    • HOST_2FA : 메일 호스트 주소.
    • USER_2FA : 코드전송 시 사용할 나의 메일 주소.
    • PASS_2FA : 코드전송 시 사용할 나의 메일 비번.
  2. make 합니다.

Browser Support

이 프로젝트는 크롬과 사파리 브라우저에서 테스트되었습니다.

Screenshot

Login Lobby
Game Live Game List
My Profile Other Profile
Friend List Chat Room List
Chat Room Chat Menu

ERD

Screen Shot 2023-03-20 at 7 23 31 PM

Screen Shot 2023-03-20 at 7 24 23 PM

Screen Shot 2023-03-20 at 7 23 45 PM