Code source ouvert d'un ensemble d'outils autour de l'économie de Dofus.
La Boubourse était un projet communautaire visant à proposer une suite d'outils pour aider les joueurs à analyser les prix, suivre l'évolution du marché et optimiser certaines prises de décision autour des HDV.
Le projet a été abandonné par manque de temps et à cause de contraintes externes trop fortes, notamment des bannissements répétés de comptes utilisés pendant le développement et l'exploitation.
Plutôt que de laisser le code dormir, nous avons choisi de le rendre public afin que la communauté puisse :
- comprendre comment le projet fonctionnait ;
- réutiliser certaines briques ;
- s'en inspirer pour créer d'autres outils.
Le dépôt regroupe l'essentiel de l'écosystème du projet :
Site_Web_Landing: site vitrineSite_Web_Outils: application principale et API métierBot_MITM: collecte / interception réseauBot_Automatisation: scripts d'automatisationStructure_BDD: structure SQL de la base de données
Le projet n'est pas un simple site vitrine : il repose sur plusieurs briques qui travaillaient ensemble.
Les interfaces web sont construites avec Next.js, React et TypeScript.
Site_Web_Landingsert de vitrine publique ;Site_Web_Outilscontient l'application principale ;- l'UI repose en grande partie sur Tailwind CSS et des composants de type Radix UI / shadcn.
Dans Site_Web_Outils, l'application est organisée autour de l'App Router de Next.js avec des pages dédiées comme :
/almanax/prix-craft/calculateur-craft/evolution-prix/brisage-rune/pack-metier/auth
Le site d'outils embarque aussi ses propres routes API Next.js dans src/app/api.
On y retrouve notamment des endpoints pour :
- l'authentification (
auth/me,auth/refresh,auth/logout,auth/discord) ; - les calculs de craft ;
- les historiques de prix ;
- les prix courants d'items ;
- les données de brisage ;
- les favoris utilisateur ;
- la consultation HDV.
Autrement dit, une partie importante de la logique métier est directement exposée côté application web via des routes serveur.
Le projet intègre une vraie couche d'authentification côté site :
- gestion d'un utilisateur connecté ;
- rafraîchissement de session / token ;
- appels authentifiés aux endpoints ;
- filtrage de certaines fonctionnalités selon le niveau d'accès.
Certaines briques, comme la consultation HDV, appliquent un filtrage côté serveur selon le niveau d'abonnement de l'utilisateur.
Le projet s'appuie sur MySQL pour stocker et exploiter les données utilisées par les outils.
Le dossier Structure_BDD fournit également une base de lecture utile pour comprendre l'organisation de la base, avec notamment :
Structure_HDV.sqlStructure_User.sql
Suivant les modules, on retrouve notamment :
- des tables de catégories et d'items ;
- des prix courants ;
- des historiques de prix ;
- des données liées aux calculs et favoris ;
- des informations nécessaires au filtrage selon les privilèges utilisateur.
Le site web lit ces données pour alimenter les pages de consultation, les calculateurs et les graphes.
La partie la plus spécifique du projet se trouve dans les outils annexes.
Le pipeline de collecte reposait principalement sur :
- un proxy de type MITM / SOCKS5 ;
- du traitement de paquets ;
- de la gestion protobuf / varint ;
- de l'injection de paquets ;
- de l'écriture en base MySQL ;
- une architecture modulaire séparant réseau, traitement, base et utilitaires.
En complément, des scripts d'automatisation permettaient d'orchestrer certaines actions système / interface, notamment :
- lancement de processus ;
- clics à position ou sur image ;
- actions clavier ;
- exécution de scripts ;
- configuration d'enchaînements automatisés.
En simplifiant, le flux était le suivant :
- des données étaient récupérées / interceptées par les briques techniques ;
- elles étaient nettoyées, traitées puis stockées en base ;
- l'application web interrogeait cette base via ses routes API ;
- les utilisateurs accédaient aux outils depuis l'interface web.
Le dépôt montre donc à la fois :
- la présentation publique du projet ;
- la web app métier ;
- les outils de collecte ;
- les scripts d'automatisation ayant servi à faire tourner l'ensemble.
Selon les parties du dépôt, vous trouverez notamment :
- Next.js / React / TypeScript pour les interfaces web
- Tailwind CSS pour le styling
- Radix UI / composants UI custom pour l'interface
- Plotly / Recharts pour certaines visualisations
- MySQL pour le stockage de données
- JWT / auth applicative pour les accès côté site
- Python pour certains outils backend / automatisation
- Scapy / Protobuf côté interception réseau
Le projet est désormais en lecture libre / archive.
Cela signifie :
- plus de maintenance active ;
- pas de garantie de fonctionnement en l'état ;
- code fourni surtout à titre d'exemple, de documentation technique et de base de réutilisation.
Dans Site_Web_Landing :
npm install
npm run devDans Site_Web_Outils :
npm install
npm run devCertaines parties nécessitent une base de données et/ou des services annexes pour fonctionner correctement.
Même si le code est public, remettre l'ensemble en production demanderait probablement de retravailler plusieurs points :
- la configuration d'environnement ;
- les accès base de données ;
- les flux d'authentification ;
- les scripts de collecte ;
- l'adaptation aux éventuels changements externes depuis l'arrêt du projet.
En clair : le dépôt constitue une base technique riche, mais pas forcément un produit relançable instantanément sans reprise de maintenance.
- Ce dépôt est publié dans une logique de transparence et de partage.
- Le projet n'est plus exploité activement.
- Si vous réutilisez ce code, faites-le à vos risques et adaptez-le à votre propre contexte.
- Ce projet est un projet communautaire non officiel et n'est pas affilié à Ankama.
Certaines parties du projet ont été réalisées, accélérées ou améliorées avec l'aide d'outils d'intelligence artificielle.
L'IA a servi comme assistant de développement, de documentation et d'itération, mais les choix techniques et l'intégration finale ont été faits dans le cadre du projet par ses auteurs.
L'ensemble est sous licence MIT.
Parce qu'un projet arrêté peut encore avoir de la valeur.
Même inachevé, ce code peut servir à :
- apprendre ;
- prototyper plus vite ;
- récupérer des idées d'architecture ;
- prolonger le travail commencé.
Si ce dépôt peut aider quelqu'un à mieux comprendre ou reconstruire un outil similaire, alors il aura encore une utilité.