marbenMB / ft_transcendence

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ft_transcendence - Pong Game 42 Project

Pong Image

Playing video games is good. Programming them is better. But then… setting up tournaments is even better! With ft_transcendence, We will modernly recreate the 1979 classic Pong, integrate it into a website, and turn it into a competitive gaming platform. The website must be able to offer tournaments between players, so it has to manage registrations, victories, progression in rankings, and a chat. This ambitious project is the last project we must complete to be able to leave the core curriculum and access internships and fields of expertise.

Index

Description 🫁

This project is all about creating a Pong game using Next.js and React.js in the front end, and Tailwind CSS for styling. The backend is powered by Nest.js, PostgreSQL, and Prisma. The project includes various features, such as a dashboard, chat, game page, user management, leaderboard, two-factor authentication (2FA), and more. Additionally, the project is written entirely in TypeScript for type safety.

Features Highlight 👨‍💻

  • Real-time Multiplayer Pong Games: Engage in thrilling Pong matches with friends or opponents in real time.

  • User-Friendly Interface: Enjoy a seamless and intuitive user interface designed for an exceptional gaming experience.

  • Integrated Chat System: Stay connected with fellow players through a built-in chat system, fostering communication and camaraderie.

  • OAuth Login (42 Intranet and Google): Seamlessly log in using your 42 intranet credentials and Google account for a hassle-free experience.

  • Two-Factor Authentication (2FA): Enhance security with 2FA, ensuring your account remains protected.

  • Friend Management: Easily connect with other users, build your gaming network, and challenge friends to Pong matches.

  • Chat Room Creation: Create public, private, or password-protected chat rooms (channels) to suit your communication preferences.

  • Direct Messaging: Send private messages directly to other users for one-on-one conversations.

  • Matchmaking System: Enjoy automatic game pairing, ensuring you're always matched with an appropriate opponent for an exciting Pong showdown.

Technologies Used 🛠️

TypeScript: The entire stack is built using TypeScript, providing type safety and enhanced developer productivity.

Front End

  • Next.js: A React framework for building fast, server-rendered web applications.

  • React.js: A JavaScript library for building user interfaces.

  • Tailwind CSS: A utility-first CSS framework for styling the front end.

  • Framer Motion: Used for adding animations and transitions to the user interface.

Back End

  • Nest.js: A TypeScript-based Node.js framework for building efficient, scalable, and maintainable server-side applications.

  • PostgreSQL: A powerful, open-source relational database management system.

  • Prisma: An object-relational mapping (ORM) tool for TypeScript and Node.js, used for database
    interactions.

  • Passport.js: A popular authentication middleware for Node.js.

  • JWT (JSON Web Tokens): Used for authentication and token-based authorization.

  • WebSocket: A communication protocol for real-time, bidirectional data transfer.

Containerization and Orchestration

  • Docker and Docker Compose: Used to define and manage multi-container Docker applications.

Showcase 🎇

Let's dive in and discover what our project has to offer!:

Login

image


Two-Factor Authentication



image

Dashboard and profile pages



image

image

image

image

image

Users page



image

Chat pages



image

image


Game pages



image

image

image

image

image


Leaderboard



image

About


Languages

Language:TypeScript 98.3%Language:JavaScript 0.9%Language:CSS 0.6%Language:Dockerfile 0.1%Language:Shell 0.0%