Skip to content

Ineal-sys/Laboubourse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

La Boubourse

Code source ouvert d'un ensemble d'outils autour de l'économie de Dofus.

À propos

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.

Ce que contient ce dépôt

Le dépôt regroupe l'essentiel de l'écosystème du projet :

  • Site_Web_Landing : site vitrine
  • Site_Web_Outils : application principale et API métier
  • Bot_MITM : collecte / interception réseau
  • Bot_Automatisation : scripts d'automatisation
  • Structure_BDD : structure SQL de la base de données

Architecture technique

Le projet n'est pas un simple site vitrine : il repose sur plusieurs briques qui travaillaient ensemble.

1. Frontend web

Les interfaces web sont construites avec Next.js, React et TypeScript.

  • Site_Web_Landing sert de vitrine publique ;
  • Site_Web_Outils contient 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

2. API applicative

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.

3. Authentification et logique d'accès

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.

4. Base de données et données métier

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.sql
  • Structure_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.

5. Collecte et alimentation des données

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.

Fonctionnement global

En simplifiant, le flux était le suivant :

  1. des données étaient récupérées / interceptées par les briques techniques ;
  2. elles étaient nettoyées, traitées puis stockées en base ;
  3. l'application web interrogeait cette base via ses routes API ;
  4. 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.

Stack principale

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

Statut du projet

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.

Lancer les sites web localement

Landing page

Dans Site_Web_Landing :

npm install
npm run dev

Application outils

Dans Site_Web_Outils :

npm install
npm run dev

Certaines parties nécessitent une base de données et/ou des services annexes pour fonctionner correctement.

Ce qu'il faut savoir avant de reprendre le projet

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.

Important

  • 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.

Note sur l'utilisation de l'IA

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.

Pourquoi l'open source ? (et licence)

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é.

About

Ensemble du code source faisant tourner le site web laboubourse.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors