Skip to content

Jeanmichel7/42_transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projet Transcendance : Pong Contest Website 🏓

Jouez au Pong en ligne avec vos amis et discutez en temps réel.
https://www.transcendence42.fr/

📋 Résumé

Ce projet est une application web permettant aux utilisateurs de jouer au Pong contre d'autres utilisateurs en temps réel. L'application offre également un chat intégré, une fonctionnalité d'ajout d'amis, et bien d'autres fonctionnalités pour enrichir l'expérience utilisateur.


💻 Technologies Utilisées

Frontend

  • 📘 React.js
  • 🛣️ React Router
  • 🌀 Vite
  • 🔍 Redux
  • 🔧 TypeScript
  • 💨 TailwindCSS
  • 🎨 Styled-components
  • 🌈 Material-UI (MUI)

Backend

  • 🐦 NestJS
  • 🗃 TypeORM
  • 🔐 JWT
  • 🔒 Bcrypt
  • 🔏 Chiffrement RSA
  • 📂 Multer
  • 🖼️ Serveur statique

Containerisation et DB

  • 🐳 Docker, Docker-compose
  • 🗄️ PostgreSQL
  • 🖥️ pgAdmin

📦 Installation

  cd ~
  git clone https://github.com/Jeanmichel7/42_transcendence.git
  cd 42_transcendance && make

Pour le développement, les volumes front et back sont reliés a l'host. FRONT_VOLUME est défini comme ${HOME}/42_transcendence/front.

🛠️ Utilisation

Application disponible sur <nom d'hôte>:3006 et localhost:3006.

📜 Règles du Projet

  • Backend écrit en NestJS
  • Frontend utilisant un framework TypeScript de votre choix
  • Utilisation obligatoire de la base de données PostgreSQL
  • Application Single Page
  • Compatible avec la dernière version stable de Google Chrome et un autre navigateur de votre choix
  • Aucune erreur ou avertissement ne doit être rencontré lors de la navigation sur le site
  • Tout doit être lancé par une seule commande : ```docker-compose up --build```

💡 Fonctionnalites

  • Jeu Pong en temps réel avec mode bonus
  • Disponibilité LAN
  • Chat intégré:
    Créez des salons de discussion, envoyez des messages directs et invitez des amis à jouer.
  • Amis:
    Établissez des relations authentiques avec un système complet de requêtes d'amis, d'attentes et d'options pour bloquer des utilisateurs,
  • Notifications:
    Recevez des notifications en temps réel pour les événements importants.
  • Connexion:
    Authentification simplifiée via OAuth2.0 ou utilisez un compte standard.
  • 2FA avec RSA:
    Sécurisez votre compte avec une authentification TOTP (secret 2FA chiffré en RSA).
  • Local Storage:
    Les préférences de l'utilisateur et certaines données sont sauvegardées localement pour une meilleure expérience utilisateur.
  • Leaderboard:
    Affichez les classements des meilleurs joueurs et voyez où vous vous situez par rapport aux autres.
  • Graphiques de performance:
    Analysez vos performances et progrès avec des graphiques détaillés.

Gallerie

Alt text for image 1 Alt text for image 1 Alt text for image 1 Alt text for image 1
Alt text for image 1 Alt text for image 1 Alt text for image 1 Alt text for image 1
Alt text for image 1 Alt text for image 1 Alt text for image 1 Alt text for image 1

🤝 Contributeurs


Jeanmichel7


YannUFLL


Wilhelm-Fermey

📜 Licence

Sous licence MIT.