Skip to content

Latest commit

 

History

History
129 lines (97 loc) · 3.97 KB

README.md

File metadata and controls

129 lines (97 loc) · 3.97 KB

PongTime

How a server works

Project developed at 1337 Khouribga coding school.
Authors: @fathjami & @achrafelkhnissi & @zsarir

GitHub code size in bytes Number of lines of code Code language count GitHub top language GitHub last commit


Table of Contents

Introduction

PongTime is a simple web application platform that allow users to play classic ping-pong with other users in real-time.

Authors

Technologies

  • Frontend: Next.js, Typescript, Tailwind CSS, Socket.io
  • Backend:
    • API: Nest.js
    • Real-time communication: Socket.io
    • Database: PostgreSQL
    • ORM: Prisma
    • Authentication: Passport.js
    • 2FA: Twilio
    • Infrastructure: Docker, Docker Compose
  • Game: Phaser.js, Matter.js, Next.js, Nestjs

Features

  • Real-time multiplayer game
  • User authentication
  • Friendship system
  • Notification system
  • Achievements
  • Search system
  • Two Factor Authentication (2FA)
  • Leaderboard
  • Private chat
  • Chat rooms (public, private, protected with a password)
  • User profile (avatar, stats, achievements, friends, etc.)

Usage

  1. Clone the repository
git clone git@github.com:achrafelkhnissi/ft_transcendence.git
  1. In the .env.example file at the root of the project, fill in the environment variables and rename the file to .env \

    Notes:

  • Put your hostname or IP address in the DOMAIN_NAME variable
  • In case of production build, set NODE_ENV to production and comment backend and frontend bind mounts volumes in docker-compose.yml file because those volumes are only needed for development because of hot-reloading.
  1. Run the following command to start the project
make
  1. Open your browser and go to http://${DOMAIN_NAME}:${NEXT_PORT} to access the application and http://${DOMAIN_NAME}:${NEXT_PORT}/api to access the API
  • Change ${DOMAIN_NAME} and ${NEST_PORT} with your environment variables set in the .env file

Screenshots

  • Dashboard

How a server works

  • Profile

How a server works

  • Messages

How a server works

  • Game Invite

How a server works

  • Game

How a server works

  • Game win

How a server works