m0hs1ne / ft_transcendence

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

خليها على الله Website

Welcome to the خليها على الله Website! This project aims to provide users with a platform to play Pong with others in real-time, featuring a user-friendly interface, chat functionality, and multiplayer online games.

Technologies Used

  • Interface Design: Figma
  • Backend Framework: NestJS
  • Frontend Framework: Vue.js (TypeScript)
  • Database: PostgreSQL
  • Authentication: OAuth system of 42 intranet and Google
  • Deployment: Docker and docker-compose

Key Features

User Account

  • Login using the OAuth system of 42 intranet and Google.
  • Choose a unique name and upload an avatar.
  • Enable two-factor authentication for enhanced security.
  • Add friends and view their online status.
  • Display user profiles with stats, achievements, and match history.
  • View the leaderboard of the top players.
  • View the list of all users and search for specific users.
  • Search for a specific channel and join it.

Chat

  • Create public, private, or password-protected channels.
  • Send direct messages to other users.
  • Block other users to stop seeing their messages.
  • Channel owners can set passwords, change them, and remove them.
  • Channel owners can assign other users as administrators with certain privileges.
  • Invite other users to play Pong through the chat interface.

Game

  • Play a live Pong game versus another player directly on the website.
  • Matchmaking system for automatic pairing with other players.
  • Different game modes.
  • Responsive design for optimal user experience, considering network issues.

Team

We did this project as it the final project of our school common core. It was a fun experience, we learned a lot and we are proud of what we achieved, you can meet the team members below:

  • Mabenchi aka databize: Worked on APIs,websocket endpoints and database schema and integration.
  • Abouchfa aka lfanan: User interface design and Frontend development of the website.
  • Abdessamad aka lbarid: Implemented the chat interface and functionality.
  • Zakaria2 aka lmochkile man 3andak: Worked on the frontend and backend of the game.
  • m0hs1ne aka chorti: Implemented the oauth system and security features.

Docs

You can find the Backend documentation for this project here.

Security

  • Passwords are securely hashed before storing in the database.
  • Protection against SQL injections is implemented.
  • Server-side validation is in place for forms and user input.
  • Credentials, API keys, and other sensitive information are stored locally in a .env file and ignored by Git.
  • Two-factor authentication is available for enhanced security.

Acknowledgments

Website Screenshots

Screenshot-from-2023-10-31-18-39-10 Screenshot-from-2023-10-31-18-39-19 Screenshot-from-2023-10-31-18-39-36 Screenshot-from-2023-10-31-18-40-02 Screenshot-from-2023-10-31-18-40-11 Screenshot-from-2023-10-31-18-40-17 Screenshot-from-2023-10-31-18-40-24 Screenshot-from-2023-10-31-18-41-57 Screenshot-from-2023-10-31-18-43-07 Screenshot-from-2023-10-31-18-43-15 Screenshot-from-2023-10-31-18-43-32 Screenshot-from-2023-10-31-18-43-51 Screenshot-from-2023-10-31-18-43-59 Screenshot-from-2023-10-31-18-44-07 Screenshot-from-2023-10-31-18-44-11 Screenshot-from-2023-10-31-18-44-17 Screenshot-from-2023-10-31-18-45-03 Screenshot-from-2023-10-31-18-45-16 Screenshot-from-2023-10-31-18-45-29 Screenshot-from-2023-10-31-18-45-43

About


Languages

Language:TypeScript 43.8%Language:Vue 41.5%Language:HTML 14.4%Language:CSS 0.2%Language:JavaScript 0.1%Language:Dockerfile 0.1%Language:Shell 0.0%