Coder Social home page Coder Social logo

achrafelkhnissi / ft_transcendence Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 2.0 21.16 MB

ft_transcendence is a web application platform for users to play Pong with others in real-time multiplayer online games. The project includes features such as user authentication, user profiles, a chat system, and game functionality.

Makefile 0.80% JavaScript 0.24% Dockerfile 0.81% TypeScript 97.04% Shell 0.44% CSS 0.68%
1337 1337cursus 1337fil 1337school 42 42born2code 42cursus 42projects 42school transcendence

ft_transcendence's Introduction

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 [email protected]: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

ft_transcendence's People

Contributors

achrafelkhnissi avatar fathjami avatar zsarir23 avatar

Stargazers

Ali benhenia avatar  avatar

Watchers

 avatar

Forkers

fathjami zsarir23

ft_transcendence's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.