Retour aux projets
2025

Dofus Trading Analytics

Plateforme d'analyse de marché et d'aide à la décision pour le MMORPG Dofus

Python Streamlit Plotly OCR Discord.py
Aperçu de Dofus Trading Analytics

Contexte

Dofus est un MMORPG français dans lequel l'économie de marché entre joueurs est un pilier central du gameplay. Les prix des objets fluctuent constamment selon l'offre, la demande, les mises à jour du jeu et les tendances communautaires.

Le problème : suivre manuellement les prix de centaines d'objets, identifier les bonnes affaires et optimiser ses stratégies de craft ou de forgemagie est chronophage et source d'erreurs.

La solution : une plateforme complète qui automatise la collecte de prix (via OCR sur screenshots du jeu), analyse les tendances du marché, détecte les opportunités d'arbitrage et fournit un assistant de forgemagie intelligent — le tout accessible via une interface web et un bot Discord.

Fonctionnalités

Analyse de marché & Trading

  • Suivi des prix — Collecte et historisation par serveur, par objet et par quantité (x1, x10, x100, x1000)
  • Détection d'opportunités — Identification automatique des arbitrages avec calcul des marges
  • Analyse temporelle — Graphiques d'évolution, moyennes glissantes (7j / 30j), volatilité
  • Watchlist — Suivi personnalisé avec alertes sur prix cibles
  • Export — CSV/JSON pour analyse externe

Collecte automatisée par OCR

  • Capture intelligente — Lecture automatique des prix depuis des screenshots via PaddleOCR/EasyOCR
  • Pipeline de preprocessing — 5 niveaux de traitement d'image (zoom, contraste, netteté)
  • Parsing bidirectionnel — Détection label→prix et prix→label pour les cas ambigus
  • ~85% de précision — Amélioré depuis ~60% grâce à l'optimisation itérative

Assistant Forgemagie

Module de 26 fichiers dédié à l'optimisation de la forgemagie :

  • Calculateur de poids — Gestion des poids de runes et du résiduum en temps réel
  • Stratégies avancées — Over-maging, Brise, Double SC avec calcul de probabilités
  • Scan OCR live — Lecture en temps réel des stats d'un équipement
  • Suggestions de runes — Recommandations optimales basées sur l'état courant
  • Système d'apprentissage — Mémorisation des patterns par objet

Bot Discord

  • Commandes : !prix, !opportunites, !tendances, !serveur
  • Alertes automatiques sur les variations de prix significatives
  • Rapports quotidiens des meilleures opportunités
  • Support multi-serveur Dofus

Analyse de craft

  • Graphes de dépendances — Visualisation des chaînes de craft complètes
  • Score de popularité — Calcul de la demande d'une ressource via tous les crafts
  • Aide au sourcing — Recommandations sur les ressources à farmer ou acheter

Stack technique

CoucheTechnologies
FrontendStreamlit (6 pages), thème dark/light
BackendPython 3.8+
BDDSQLite (dev) / PostgreSQL (prod)
OCRPaddleOCR, EasyOCR, Tesseract
VisualisationPlotly (graphiques interactifs)
BotDiscord.py (slash + classiques)
DéploiementDocker, Docker Compose
MonitoringPrometheus, Grafana
TestsPytest, Black, Flake8, MyPy, Bandit
CI/CDGitHub Actions

Architecture

┌──────────────────────────────────────────────────┐
│            Interface utilisateur                 │
│         Streamlit (6 pages) + Discord Bot        │
├──────────────────────────────────────────────────┤
│            Composants UI réutilisables           │
│        Cards · Charts · Tables · Search          │
├──────────────────────────────────────────────────┤
│             Logique métier                       │
│  Trading · Forgemagie (26 modules) · Craft · OCR │
├──────────────────────────────────────────────────┤
│            Accès aux données                     │
│    DofusDB API · OCR Engine · Discord API        │
├──────────────────────────────────────────────────┤
│              Persistance                         │
│     SQLite/PostgreSQL · JSON cache · CSV         │
└──────────────────────────────────────────────────┘

Points techniques notables

  • Pipeline OCR en 5 niveaux — Du basique (zoom 2x) à l'extrême (zoom 4x, contraste 3x, netteté 4x) avec sélection automatique
  • Parsing bidirectionnel — Algorithme label→prix puis prix→label pour maximiser le taux d'extraction
  • Calculateur de forgemagie — Modélisation complète du système de poids/résiduum avec calcul de probabilités
  • Architecture modulaire — Chaque fonctionnalité est un module indépendant

Qualité & CI/CD

Pipeline GitHub Actions automatisé sur chaque push/PR :

  • Tests — Pytest avec couverture, multi-OS (Ubuntu + Windows), multi-version Python (3.8→3.11)
  • Formatage — Black (style), isort (imports)
  • Linting — Flake8 (erreurs critiques), MyPy (typage statique)
  • Sécurité — Bandit (vulnérabilités), audit des dépendances
  • Build — Construction et push de l'image Docker

Évolution du projet

V1Script basique

Collecte de prix avec interface minimale

V2Fonctionnalités avancées

Ajout de l'OCR, du bot Discord, de la forgemagie et d'une interface complète

V3Refonte architecturale

Séparation en couches, modernisation UI, thèmes, optimisation performances

Chiffres clés

~80Fichiers Python
26Modules forgemagie
6Pages Streamlit
~85%Précision OCR
22Guides documentation
11Fichiers de tests

Compétences mobilisées

Data Engineering (ETL)
Computer Vision / OCR
Développement web (Streamlit)
Base de données
Intégrations API
DevOps (Docker, CI/CD)
Algorithmique
Qualité logicielle