Gestionnaire d'enclos de dragodinde (dofus 3 unity)
Go to file
POL Mickaël 203c423f19 test: 302 tests unitaires + 20 E2E Playwright (couverture 94%)
- Unit : domain (GaugeCalculator, Enclos, Dragodinde, XpTable, Race, Tier...)
- Unit : application (commands, queries, CommandBus)
- Fonctionnel : breeding-workflow, enclos-management, timer-workflow
- Régression : gauge-tier, gauge-recharge, xp-timer, level-target, breeding
- E2E Playwright + Electron : navigation, timer, recharge jauge,
  accouplement, persistance des données

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 05:43:29 +02:00
docs/plans v1.1.5 - ajout de nouvelles features. 2026-03-27 01:58:43 +01:00
ntfy-redirect v 1.1.0 - mise ne place des notifications mobile & gestion d'accouplement. 2026-03-25 16:48:14 +01:00
refonte_graphique feat: design Obsidienne + composants UI + toast/undo/backup 2026-04-06 05:43:20 +02:00
src feat: design Obsidienne + composants UI + toast/undo/backup 2026-04-06 05:43:20 +02:00
tests test: 302 tests unitaires + 20 E2E Playwright (couverture 94%) 2026-04-06 05:43:29 +02:00
.gitignore v1.0.0 - version initiale 2026-03-24 01:36:01 +01:00
algorithmes.md v1.1.4 - ajout de nouvelles features et correction de bugs. 2026-03-26 20:18:55 +01:00
build.bat feat: infrastructure Electron + persistence + electron-updater 2026-04-06 05:43:04 +02:00
build.ps1 feat: infrastructure Electron + persistence + electron-updater 2026-04-06 05:43:04 +02:00
CLAUDE.md v 1.1.0 - mise ne place des notifications mobile & gestion d'accouplement. 2026-03-25 16:48:14 +01:00
findings.md v1.1.4 - ajout de nouvelles features et correction de bugs. 2026-03-26 20:18:55 +01:00
icon.ico feat: infrastructure Electron + persistence + electron-updater 2026-04-06 05:43:04 +02:00
icon.png feat: infrastructure Electron + persistence + electron-updater 2026-04-06 05:43:04 +02:00
package-lock.json feat: architecture DDD hexagonale + tooling Vite/TypeScript 2026-04-06 05:42:53 +02:00
package.json feat: architecture DDD hexagonale + tooling Vite/TypeScript 2026-04-06 05:42:53 +02:00
playwright.config.ts test: 302 tests unitaires + 20 E2E Playwright (couverture 94%) 2026-04-06 05:43:29 +02:00
progress.md v1.1.4 - ajout de nouvelles features et correction de bugs. 2026-03-26 20:18:55 +01:00
README.md v1.1.5 - ajout de nouvelles features. 2026-03-27 01:58:43 +01:00
task_plan.md v1.1.4 - ajout de nouvelles features et correction de bugs. 2026-03-26 20:18:55 +01:00
tsconfig.json feat: architecture DDD hexagonale + tooling Vite/TypeScript 2026-04-06 05:42:53 +02:00
vite.config.ts feat: architecture DDD hexagonale + tooling Vite/TypeScript 2026-04-06 05:42:53 +02:00
vitest.config.ts feat: architecture DDD hexagonale + tooling Vite/TypeScript 2026-04-06 05:42:53 +02:00

⚔ Minuteur Dragodinde — Dofus 3

Outil de gestion d'élevage de Dragodindes pour Dofus 3.
Application desktop Windows construite avec Electron.

🔗 Repo : https://gitea.mickael-pol.fr/mickael/dd-timer

Fonctionnalités

  • 🐦 Gestion de 6 enclos indépendants avec jusqu'à 10 Dragodindes chacun
  • Timer en temps réel avec calcul automatique par tier de jauge (1→4)
  • 📊 Dashboard vue d'ensemble multi-enclos
  • 🔔 Notifications natives Windows même application en arrière-plan
  • 🔊 4 sons d'alarme au choix (Arpège, Pulsation, Fanfare, Cloche)
  • 🐉 Jauges : Baffeur, Caresseur, Foudroyeur, Abreuvoir, Dragofesse, Mangeoire (XP)
  • 🖱 Drag & drop des enclos et des Dragodindes pour les réordonner
  • Mise à jour automatique via Gitea Releases
  • 📱 Notifications mobiles via ntfy (serveur self-hosted)
  • 💾 Sauvegarde automatique locale

Installation (utilisateurs)

  1. Télécharger Minuteur Dragodinde Setup x.x.x.exe depuis la section Releases
  2. Clic droit → Propriétés → cocher "Débloquer" → OK (important, une seule fois)
  3. Double-cliquer pour lancer l'installation
  4. L'app apparaît dans le menu Démarrer et sur le Bureau

Si Windows affiche "Application inconnue" : cliquer "Informations complémentaires" → "Exécuter quand même"

Build (développeurs)

Prérequis

Compiler

# Double-cliquer sur build.bat (admin auto)
# ou manuellement :
npm install
npm run build

L'installeur est généré dans dist/.

Publier une nouvelle version

# 1. Modifier la version dans package.json ("version": "1.x.x")
# 2. Committer et tagger
git add .
git commit -m "v1.x.x - description"
git tag v1.x.x
git push && git push --tags

# 3. Sur Gitea : Releases → Nouvelle release → tag v1.x.x → attacher Setup.exe

Structure

dd-timer/
├── src/index.html      # Interface (HTML/CSS/JS)
├── main.js             # Processus principal Electron + auto-update
├── preload.js          # Bridge Electron ↔ renderer
├── icon.png            # Icône (256x256)
├── package.json        # Config et dépendances
└── build.bat           # Script de build Windows (admin auto)

Changelog

v1.1.5

  • Onglet Accouplement — selection des 2 parents, deduction automatique du bebe, saisie du nombre de couples et bebes obtenus pour alimenter les statistiques globales
  • Sidebar navigation — menu hamburger avec panneau lateral overlay (Dashboard, Enclos, Accouplement, Reappro, Inventaire, Workflows, Parametres)
  • Onglet Parametres — son d'alarme, notifications PC et mobile regroupes dans une vue dediee accessible via la sidebar
  • Reappro ♂/♀ — chaque etape de l'arbre affiche les genres necessaires (♂/♀) avec toggle d'inversion par croisement
  • 🎨 Statistiques globales integrees au Dashboard (bebes, couples, taux de reussite, races obtenues)
  • 🎨 Onglets horizontaux simplifies — seuls Dashboard et Enclos restent, le reste est dans la sidebar
  • 🔧 Retrait du systeme de bebes des enclos — les accouplements se font desormais via l'onglet dedie
  • 🔧 Migration automatique des donnees bebes existantes vers les statistiques archivees
  • 🗑 Suppression de l'onglet Statistiques (donnees conservees dans le Dashboard)

v1.1.4

  • Cible serenite par DD — champ cible avec ETA en temps reel (calcul automatique baffeur/caresseur necessaire)
  • Cible niveau par DD — champ cible avec ETA en temps reel (modele XP lineaire base sur le tier de la mangeoire)
  • Inventaire ♂/♀ — saisie du nombre de males et femelles par race dans l'inventaire
  • Contraintes de genre — le calcul d'inventaire respecte la regle ♂+♀ obligatoire (plus de croisement ♂+♂ ou ♀+♀)
  • Bouton "Reinitialiser l'inventaire" — remet a zero tous les stocks de DD (avec confirmation native)
  • Affichage du sexe des parents — les resultats de croisement indiquent quel parent est ♂ et lequel est ♀
  • 🎨 Serenite et XP reintegrees dans la barre de pills (comme endurance, amour, etc.)
  • 🎨 Lignes dediees cible + ETA pour serenite et niveau sous les pills
  • 🎨 Badges compacts pour les noms de jauges longs (baffeur, caresseur, mangeoire) sur les cartes DD
  • 🎨 Zone de clic elargie sur les inputs ♂/♀ de l'inventaire
  • 🎨 Padding et espacement corriges sur les cartes inventaire
  • 🔧 Correction timer XP incorrect — affichait ~23h au lieu du temps reel
  • 🔧 Correction defocus input reproducteur — l'input perdait le focus car oninput declenchait un rebuild DOM
  • 🔧 Correction bebes produits — les bebes issus de croisements sont maintenant neutres (sexe inconnu) au lieu d'etre assignes ♂/♀ arbitrairement
  • Cache DOM gel() — les ~500+ appels getElementById par tick passent par un cache Map
  • Verification de mise a jour uniquement au demarrage (suppression du check toutes les heures)

v1.1.3

  • Reinitialisation des statistiques — bouton dans l'onglet Statistiques pour remettre a zero tous les bebes, historiques et stats archivees (avec confirmation)
  • Inputs intelligents — les champs numeriques se vident au clic pour saisir facilement, et restaurent la valeur precedente si rien n'est change
  • 🔧 Correction "vider l'enclos" / "nouvelle fournee" / "supprimer enclos" — remplacement de confirm() par un dialogue natif Electron pour corriger le bug qui rendait tous les inputs inutilisables
  • 🔧 Correction du bug "enclos vide" — apres avoir vide un enclos ou lance une nouvelle fournee, une dragodinde est automatiquement ajoutee et les inputs restent editables
  • 🔧 Correction "nouvelle fournee" — ne vide plus l'historique de session des bebes, seul "vider l'enclos" le fait
  • 🔧 Correction des statistiques globales — supprimer un enclos conserve desormais ses stats dans les statistiques globales (archivage automatique)
  • 🔧 Correction du bouton "Quitter" — utilisation de process.exit() pour forcer l'arret complet du processus

v1.1.2

  • 💾 Sauvegarde persistante — les donnees sont maintenant sauvegardees dans un fichier JSON, plus de perte de statistiques apres une mise a jour
  • Dialogue de fermeture — cliquer sur la croix propose de minimiser en arriere-plan ou de quitter completement

v1.1.1

  • 🔧 Correction de la mise a jour automatique — l'app se relance maintenant toute seule apres installation
  • 🔧 Correction de l'affichage du titre des notifications ntfy (encodage base64 supprime)

v1.1.0

  • 📱 Notifications mobiles (ntfy) — Alerte sur telephone quand un enclos est pret, via serveur ntfy self-hosted
    • Modale de configuration avec QR code pour installer l'app ntfy (Play Store / App Store)
    • QR code d'abonnement automatique via page de redirection (ntfy-redirect)
    • Bouton de test des notifications
    • Envoi via le processus principal Electron (pas de CORS)
  • 🐣 Systeme de bebes — Ajout de bebes dragodindes issus de la reproduction dans chaque enclos
    • Modale de selection par generation et race avec images
    • Historique des bebes par enclos
  • 📊 Onglet Statistiques — Vue globale de l'elevage avec KPIs, repartition par race, et progression par enclos
  • 🖱 Drag & drop des onglets d'enclos pour les reordonner
  • 🐉 Images des dragodindes par race avec couleurs par generation
  • 📝 Sous-onglets par enclos (Elevage / Historique bebes)
  • 🔧 Mode DEV — Donnees isolees et badge DEV visible quand lance avec npm start
  • Mise a jour automatique via Gitea Releases avec banniere de progression dans l'interface
  • 🔧 Correction de l'identifiant applicatif (fr.mickael-pol.minuteur-dragodinde)
  • 🔧 Masquage des spinners natifs sur les champs numeriques

v1.0.0

  • Version initiale