Skip to content

Une application web intégrant le jeu Pong multijoueur en temps réel avec une interface utilisateur moderne, des fonctionnalités avancées de gestion des utilisateurs et une architecture modulaire axée sur la sécurité et l'accessibilité.

Notifications You must be signed in to change notification settings

raveriss/ft_transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 

Repository files navigation

ft_transcendence - École 42 | Paris

Pong Django PostgreSQL Docker 2FA SPA JavaScript Three.js Multi-language Mobile Compatible GDPR

Badge du projet transcendence

Description

Le projet ft_transcendence est une plateforme Web innovante centrée sur le jeu Pong. Bien plus qu'un simple jeu local, il s'agit d'une application web complète, évolutive, et riche en fonctionnalités, permettant des interactions temps réel entre utilisateurs. Ce projet est conçu comme un exercice d'excellence en développement web, DevOps, et cybersécurité.


Fonctionnalités Principales

Partie Obligatoire

  • Jeu Pong en ligne :
    • Mode 1v1 sur même machine ou en ligne
    • Tournoi avec organisation automatique des matchs.
  • Application Web Monopage (SPA) :
    • Développée en JavaScript : vanilla.
    • Compatible avec la dernière version stable de Google Chrome.
  • Sécurité Basique :
    • Connexion HTTPS.
    • Protection contre les injections SQL et XSS.
    • Stockage des mots de passe hashés.
  • Conteneurisation avec Docker :
    • Déploiement via une commande simple (docker-compose up --build).

Modules Avancés

Le projet peut être enrichi avec de nombreux modules pour atteindre 100 % de complétion :

Web

  • Backend avec Django.
  • Utilisation de PostgreSQL comme base de données.
  • Stockage des scores sur Ethereum (blockchain).

User Management

  • Authentification OAuth2.0/42.
  • Gestion des profils avec avatars, historique des matchs, et statistiques.
  • Système d'amis avec affichage du statut en ligne.

Gameplay

  • Joueurs distants et multijoueurs.
  • Chat en direct avec invitations à jouer.
  • Matchmaking automatisé.

Cybersécurité

  • Mise en place de WAF/ModSecurity.
  • Gestion des secrets avec HashiCorp Vault.
  • Authentification 2FA et JWT.
  • Conformité GDPR.

DevOps

  • Monitoring avec Prometheus/Grafana.
  • Gestion des logs via ELK (Elasticsearch, Logstash, Kibana).
  • Architecture backend en microservices.

Graphiques

  • Graphismes avancés avec ThreeJS.

Accessibilité

  • Multi-langue, compatibilité multi-navigateurs, support mobile.
  • Accessibilité pour malvoyants.

Structure du Projet

ft_transcendence/
├── backend/
│   ├── manage.py
│   ├── settings.py
│   ├── urls.py
│   ├── models.py
│   └── views.py
├── frontend/
│   ├── index.html
│   ├── styles.css
│   ├── main.js
│   └── pong.js
├── docker-compose.yml
├── .env
└── README.md

Installation et Lancement

Prérequis

  • Docker et Docker Compose installés.
  • Navigateur moderne (Google Chrome recommandé).

Commandes

  • 1. Clonez le dépôt :

    git clone https://github.com/raveriss/ft_transcendence.git
    cd ft_transcendence
  • 2. Configurez les variables d'environnement :

    • Créez un fichier .env à la racine et renseignez-y vos clés API, mots de passe et paramètres.
  • 3. Lancez l'application :

    docker-compose up --build
  • 4. Accédez à l'application :

    • Ouvrez votre navigateur et rendez-vous sur http://localhost:3000.

Modules et Extensions

Modules Principaux

  • 1. Backend Framework : Développement du backend avec Django.
  • 2. User Management : Authentification, gestion des profils et historique des matchs.
  • 3. Gameplay : Mode multijoueur, personnalisation des règles, et ajout d'une IA.
  • 4. Cybersecurity : Mise en place de 2FA et JWT.
  • 5. DevOps : Monitoring avec Prometheus/Grafana et gestion des logs avec ELK.

Modules Bonus

  • Accessibilité : Compatibilité multi-langue et support pour les utilisateurs malvoyants.
  • Graphiques 3D : Utilisation de ThreeJS pour une expérience immersive.
  • Blockchain : Stockage des scores de tournois sur Ethereum.

Aperçu

Interface du jeu

Aperçu du jeu Pong

Statistiques des utilisateurs

Statistiques utilisateur

Contributeurs

Ressources Utilisées

About

Une application web intégrant le jeu Pong multijoueur en temps réel avec une interface utilisateur moderne, des fonctionnalités avancées de gestion des utilisateurs et une architecture modulaire axée sur la sécurité et l'accessibilité.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published