Skip to content

Le dernier projet, après finito pipo le blackhole

Notifications You must be signed in to change notification settings

Florian-A/Transcendence

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Transcendence

Projet final du tronc commun de 42, dont le but est la création d'un site web pour jouer au jeu Pong en ligne.

Ce projet couvre les aspects suivants :

  • Développement d'une application web monopage.
  • Mise en place d'un backend avec NestJS et d'un frontend en React.
  • Intégration d'une base de données PostgreSQL.
  • Implémentation de fonctionnalités de sécurité et de gestion des utilisateurs.
  • Dockerisation complète du projet.

Fonctionnalités :

Compte utilisateur

  • Inscription et connexion via OAuth (intranet 42).
  • Choix d'un nom d'utilisateur unique et téléchargement d'un avatar.
  • Activation de l'authentification à deux facteurs (2FA).
  • Gestion des amis et affichage du statut en temps réel.
  • Consultation des statistiques et de l'historique des matchs.

Chat

  • Création de channels (publics, privés, protégés par mot de passe).
  • Envoi de messages directs et blocage d'utilisateurs.
  • Gestion des channels par les propriétaires et administrateurs.
  • Invitation à jouer via l'interface de chat.

Jeu

  • Lancement de parties de Pong en temps réel contre d'autres joueurs.
  • Système de matchmaking automatique.
  • Options de personnalisation et jeu fidèle au Pong original.
  • Jeu responsive et gestion des latences réseau.
  • Possibilité d'utiliser les mains comme contrôleur.

Pré-requis :

  • Docker >= 26.1.1
  • Docker Compose >= v2.27.0

Configuration et déploiement :

Fichier .env à la racine du projet avec les paramètres suivants :

ENV=prod
APP_NAME=pingpanpong

REACT_APP_FRONTEND_URL=http://localhost:8080
REACT_APP_BACKEND_URL=http://localhost:8080/api

REACT_APP_FORTYTWO_APP_ID=<secret>
FORTYTWO_APP_SECRET=<secret>

POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_USERNAME=postgres
POSTGRES_PASSWORD=<secret>
POSTGRES_NAME=transcendence

DATABASE_URL=postgresql://postgres:<secret>@db:5432/transcendence

JWT_SECRET=<secret>

REACT_APP_GITHUB_LINK=https://github.com/

Remplacer <secret> par des chaînes de caractères aléatoires ou des accès API valides.

Commandes disponibles :

  • docker-compose up --build : construction et lancement du projet.

Diagrammes :

Diagramme d'entité

Diagramme de déploiement

Démonstration :


Correction :

Correcteur 1
Correcteur 2
Correcteur 3

Contributeurs :

Sasha Antoine Florian Alric Ana
Sasha Antoine Florian Alric Ana

Languages

  • TypeScript 95.2%
  • CSS 3.6%
  • Other 1.2%