Giter Site home page Giter Site logo

ft_transcendence's Introduction

ft_transcendence

This project is about creating a website for the mighty Pong contest!

What is ft_transcendence?

ft_transcendence is an individual project at 42 which requires that we build an online platform to play Pong.

The backend must be built using NestJS, the frontend in any TypeScript framework of your choice and the database must be PostgreSQL. For the frontend, the chosen option was React, due to its popularity and extensive documentation.

There are no restraints in regards to external libraries and the website but it needs to be a single-page application. It should be compatible with Google Chrome and the other optional browser.

The user must log in using the OAuth system of 42 intranet and be able to enable a two-factor authentication method, for which we chose the Google Authenticator App.

Overall, the platform should have a ranking system, chat channels, private messages, profile editing, view users status and add other members as friends.

The platform should have a ranking system, chat channels, direct messaging and allow, user status changes, friend features and some profile customization options.

The main purpose is to play an implementation of Pong, as if it was [1972.] all over again(https://www.youtube.com/watch?v=fiShX2pTz9A) There should be a few customization options such as custom maps or power-ups but the user should still be able to play the original version. A spectator system must be implemented, spectators are able to watch the match without interfering with it.

Finally, the server structure must be containerized using docker and available with a single call of: docker-compose up --build.

Overview

alt text

Server Structure (Production)

alt text

Database Schema

Click here to view full image.

alt text

Badge

Skills

  • Rigor
  • Group & interpersonal
  • Web

My grade

Getting started (Staging)

Follow the steps below

# Clone the project and access the folder
git clone https://github.com/VLN37/ft_transcendence ft_transcendence && cd ft_transcendence/

# Register a new application in 42 intra
# create a .env file with your app info into the back, front and project root folder
# examples are given in .env.example in each folder

# Run make install to install the packages
make install

# Run make up so you can build the images
# and run the containers in dev mode
make up

# Access the login page using the URL below
# Log in using your 42 account or one of the example accounts
http://localhost

# Run make down to stop running containers
make down

# Alert!
# This will clean up all your docker related files and containers
# Use this if you really want to clean your machine
make fclean

# Well done!

Updating

The project is regularly updated with bug fixes and code optimization.

๐Ÿ“ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.


Made by: Joรฃo Rodriguez ๐Ÿ‘‹ See my github
Paulo Santana ๐Ÿ‘‹ See my linkedin
Welton Leite ๐Ÿ‘‹ See my linkedin

ft_transcendence's People

Contributors

paulo-santana avatar vln37 avatar wwwwelton avatar

Stargazers

Raziel Rodrigues avatar Lucas Kuhn avatar Bima Putra Lamanda avatar

Watchers

 avatar

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.