Skip to content

Latest commit

 

History

History
206 lines (155 loc) · 7.56 KB

README-en.md

File metadata and controls

206 lines (155 loc) · 7.56 KB
Header
Table of Contents

English | 한국어

Summary

The Pong is a application that provides a chat and 1:1 game service.

Team Members

Key Features

User

  • OAuth login
  • Two-Factor Authentication
  • Set and change nickname and profile image
  • Profile page
  • Follow/unfollow and block/unblock users
  • User status display: online, offline, in-game

Chat

  • Channel settings: change channel name, type and password
  • Channel types:
    • Public channels: Chat with all users
    • Locked Channel: A public channel that requires a password to enter
    • Private Channel: Chat with invited users
    • DM: 1:1 chat with another user
  • Channel management: create channel, delete channel, invite users to the channel, leave channel
  • Manage channel participants:
    • Grant/Revoke admin
    • Mute: Unable to send messages for 30 seconds
    • Kick: Removed from the channel but can re-enter
    • Ban: Blocked from the channel, re-entry is not possible

1:1 Game

  • Random player matching
  • Game customization: mods, maps
  • Game result history
  • Level system

Stacks

Frontend

React React Router Tanstack Query Zustand Axios Mock Service Worker Konva TailwindCSS HeadlessUI Heroicons

Backend

NestJS Prisma PostgreSQL Passport Socket.io WebRTC

Development

TypeScript ESLint Prettier Yarn Berry Git Visual Studio Code

DevOps

Docker Make

Communication

GitHub Notion Slack Figma

Development and Troubleshooting Logs(In Korean)

  • [FE Development Log] Implementing infinite scroll - Heehyun Kim(@hhkim0729) 👉 Go to read

How to Run

Requirements

Install dependencies with...

$ node -v
v18.14.2
$ yarn set version stable
$ yarn --version
3.4.1

Set up OAuth Client

Google OAuth

  1. Create an OAuth 2.0 client by referring to the Google Developer Docs.
  2. In the form filling step, enter http://localhost/api/v1/auth/google/return as the value of the redirect URI.
  3. Copy each value to the .env or .env.example file.
    • GOOGLE_ID: OAuth client ID
    • GOOGLE_SECRET: OAuth client secret
    • GOOGLE_CB: OAuth redirect URI (http://localhost/api/v1/auth/google/return)

Installation & Run

$ git clone https://github.com/team-noir/the-pong
$ cd the-pong

# Set and edit env file
$ cp .env.example .env
$ vi .env

# Run containers
$ docker compose build --no-cache
$ docker compose up -d

# Use Makefile instead of docker-compose
$ make up

Development

$ git clone https://github.com/team-noir/the-pong
$ cd the-pong

# Set and edit env file
$ cp .env.development.example .env.development
$ vi .env.development

#
$ docker compose -f docker-compose-dev.yml --env-file .env.development build --no-cache
$ docker compose -f docker-compose-dev.yml --env-file .env.development up -d

Project Structure

/
├── .github    # github settings
├── .vscode    # vscode settings
├── backend
│   ├── prisma # database schema
│   ├── src    # source code
│   └── test   # test code
├── frontend
│   ├── public # static files
│   └── src    # source code
└── nginx      # nginx config

Commit Message Convention

.gitmessage

Development Ports & URLs