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 :
- Victoires — critère principal absolu
- Taux de victoire — pour départager les égalités
- Indice touches — touches données moins touches reçues, plafonné à ±5 par duel
Stack technique
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
Liens
- Démo — duel.benribs.fr
- Code source — github.com/BenribsLab/DuelByBenribsLab
- APK Android — Releases GitHub
- Signaler un bug — GitHub Issues