Giter Site home page Giter Site logo

jagged-teeth / 42-ft_transcendance Goto Github PK

View Code? Open in Web Editor NEW

This project forked from misteriaud/ft_transcendence

0.0 0.0 0.0 1.33 MB

ping-pong time

Shell 1.23% JavaScript 1.02% TypeScript 93.92% CSS 0.58% Makefile 0.73% HTML 0.60% Dockerfile 1.92%

42-ft_transcendance's Introduction

ft_transcendence

Ft_transcendance is a Docker-compose deployable webgame that features social-networking mechanisms such as friendships, direct-messages, and profile pictures. It includes a real-time multiplayer version of the classic game Pong and a chatroom with administration roles. The project also implements authentication using OAuth2 (through the 42school provider) and a 2FA-TOTP implementation. It is built on top of NestJS as the backend, PostgreSQL as the database, and ReactJS/Tailwind as the frontend.

Project Structure

The project is composed of the following images:

  • nestjs: The backend server built with NestJS.
  • prisma_studio: A visual database management tool (Prisma Studio) connected to a PostgreSQL database.
  • react: The frontend application built with ReactJS.

Prerequisites

To run this project, you need to have the following dependencies installed:

  • Docker
  • Docker Compose

You also need to have access to API credentials from 42 School.

Getting Started

To run the project, follow these steps:

  1. Clone the repository:
git clone https://github.com/DimiOui/ft_transcendance.git
cd ft_transcendance
  1. Create a .env file by copying the provided .env.example file:
cp .env.example .env
  1. Update the environment variables in the .env file to match your configuration.
  2. Build and run the containers using Docker Compose or the Makefile:
docker-compose up --build

or

make

This will start the NestJS backend, PostgreSQL database, and React frontend.

  1. Once the containers are running, you can access the application by opening http://localhost:8080 in your web browser.

Skills acquired:

  • REST API concepts
  • React and Typescript
  • Websockets
  • Multiplayer network gaming concepts (prediction, latency management, queue management...)
  • Interface between NestJS Object-oriented data-structure and PostgreSQL relational database via Prisma.
  • Authentication and authorization standards (OAuth2, JWT, Password hashing, TOTP).

42-ft_transcendance's People

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.