Duel

by Benribs Lab

Une plateforme moderne où tout escrimeur peut défier n'importe qui, valider ses résultats de façon transparente et suivre sa progression dans un classement équitable — dans un cadre protégé pour les plus jeunes.

Duel by Benribs Lab

Duel démocratise l'organisation de duels d'escrime : une application web et mobile, une API REST et un plugin WordPress pour gérer les défis, valider les résultats et suivre les classements d'une communauté d'escrimeurs.

Philosophie

  • Défi universel — tout le monde peut défier tout le monde, sans restriction
  • Validation collaborative — les joueurs valident eux-mêmes leurs résultats
  • Transparence totale — classements et statistiques visibles par tous
  • Égalité des chances — le même algorithme de classement pour tous
  • Cadre protégé — la participation des mineurs est soumise à l'accord d'un parent, puis du club

Protection des mineurs — au cœur du projet

Duel est conçu pour un usage en club, y compris par des jeunes. La participation d'un mineur est encadrée à chaque étape :

  • Un compte Junior (moins de 15 ans) déclare, dès l'inscription, l'e-mail d'un parent ou responsable légal.
  • Le compte reste inactif tant que ce parent n'a pas donné son accord.
  • Un administrateur du club valide ensuite à son tour avant toute activation.
  • Aucun duel, aucune donnée publique tant que cette double validation n'est pas obtenue.

Ce circuit garantit un environnement conforme et sûr pour les jeunes escrimeurs, et place la responsabilité des familles et du club avant l'usage.

L'écosystème technique

Applications & interfaces

  • Application web — React 19 + Vite, desktop et mobile
  • Application mobile Android — React + Capacitor, notifications push natives
  • Plugin WordPress — PHP, 6 shortcodes configurables

Backend & infrastructure

  • API REST — Node.js, Express, Prisma, authentification JWT
  • Base de données — SQLite ou MySQL, bascule dynamique
  • Déploiement — Docker & Docker Compose

Fonctionnalités

Système de duels

  • Défis ouverts entre tous les duellistes
  • États : proposé → accepté → validé
  • Validation par arbitre ou double saisie des joueurs
  • Programmation optionnelle des rencontres

Duellistes

  • Profils : pseudo, avatar, statistiques
  • Authentification JWT + OTP e-mail ou mot de passe
  • Synchronisation temps réel entre interfaces
  • Comptes juniors : accord parental puis validation du club

Classement & tableaux de bord

  • Classement général et classement junior en temps réel
  • Statistiques individuelles : V/D, ratio, évolution
  • Historique complet des affrontements

Un classement équitable

Le classement suit trois critères, dans cet ordre :

  1. Victoires — critère principal absolu
  2. Taux de victoire — pour départager les égalités
  3. Indice touches — touches données moins touches reçues, plafonné à ±5 par duel

Stack technique

React 19ViteNode.jsExpressPrismaCapacitorDockerSQLite / MySQLWordPress / PHPJWT

Feuille de route

✅ Phase 1 — MVP complet

  • API REST avec authentification
  • Interface web React responsive
  • Application mobile Android
  • Plugin WordPress fonctionnel
  • Système de duels et classements
  • Déploiement Docker

🔄 Phase 2 — Optimisation (en cours)

  • Notifications push mobiles (fait)
  • Mode hors-ligne basique
  • Interface d'administration avancée
  • Tests automatisés complets
  • Support iOS

📋 Phase 3 — Extensions (planifié)

  • Tournois organisés
  • API publique pour développeurs tiers
  • Analyses et statistiques avancées
  • Intégration réseaux sociaux
  • Support multilingue

Essayer Duel

La démo est en ligne et le code est open source (licence MIT).

Ouvrir la démo

Liens