Changelogs & Sprints

Historique des livraisons

Historique complet des livraisons Anim'Gest — S30 → S74 — NoSage's Editor

36
Sprints
121
Pages UI
~189
Routes API
99/100
Score S74
S80
Fix GED · Archivage dist/BIB_Widget 893 Mo · Corrections wrappers isolants · Charte 8 pages · JSDoc custom-routes
11/04/2026 · 117 pages UI · ~198 routes API · 22 Eliot tools · Score global 99/100
✅ Livraisons S80 — Conv1
  • Stack vérifiée — PDF devis OK, GED valide
  • Archivage dist/ (596 Mo) + BIB_Widget/ (297 Mo) → 893 Mo libérés
  • invoice.pdf résiduel supprimé de Semaine_2026_15
  • Sidebar v2 · S80 patchée + JSDoc @sprint S80
  • JSDoc custom-routes audité — 1 faux positif, dette zéro
  • GitHub Pages S79 pushé — commit 0927966
  • Build frontend 117/117 — 0 erreur
✅ Livraisons S80 — Conv2
  • demande-avoir-fourn/[id] reconstruit complet (16 783 car.)
  • avoir-client/[id] — wrapper + loading state corrigés
  • bon-livraison/[id] — wrapper supprimé + div orphelin retiré
  • bon-retour/[id] — wrapper supprimé
  • 4 pages liste (BL/AC/BR/DAF) — charte + wrapper corrigés
  • Build frontend 117/117 — 0 erreur
99Backend
99Frontend
98BDD
99Global
Sprint S81 ACTIF 12/04/2026 — Devis multi-animaux, Email PDF, EmailModal
S84  | S83 Sprint S82 ACTIF 12/04/2026 — EDC→BC, visites tableau, devis metier
S83 Sprint S82 ACTIF 12/04/2026 — EDC→BC, visites tableau, devis metier
S79
JSDoc 71 fichiers · GED validé · Charte BR/DAF/achats · Routes PDF BR+DAF · Archivage 15 éléments
11 avril 2026 — Build API + Frontend 117 pages — Score 99/100

Conv1 : JSDoc global (71 fichiers patchés), archivage 15 éléments, BACKLOG_PRODUIT.md créé.
Conv2 : Test GED réel validé (GED_ID=59), charte graphique BR/DAF/achats/editions, routes PDF Puppeteer BR+DAF, fix chemins /app/ged_new, fix routes /editions/upload-*.
Dette technique : 0 point résiduel.

Voir le changelog complet →

S78
Aide 800+ Q/R · Scénarios métier HTML · Agenda DnD · GED PDF horodaté · Audit 0 dette
11 avril 2026 — Build API + Frontend 117 pages — Score 99/100

ROUGE R3 : Agenda Drag & Drop résolu. JAUNE : charte achats/stock, GED PDF horodaté, nettoyage 28 fichiers test GED.
Docs : 22 scénarios HTML embarqués, centre d'aide 244 Q/R, guide paramétrage, notice utilisation.

Voir le changelog complet →

S77
API Puppeteer · GED logos · 8 ORANGE · 7 JAUNE · Audit propreté
11 avril 2026 — Build API + Frontend 117 pages — Score 98/100

ROUGE : R1 Puppeteer, R2 GED logos, R4 Règlements, R5 API helpers — tous résolus. R3 Agenda DnD reporté S78.
ORANGE : dashboard comportementaliste, sidebar, formules, tarif, portail, registre sanitaire, sport canin (8 items).
JAUNE : cliquabilité listes, GED arborescence, i18n, Topbar CSS vars, debug-pdf supprimé (7 items).

S78  | Voir le changelog complet →

S78
Centre d'aide 244 Q/R · 22 scénarios métier HTML · Guide paramétrage · Notice utilisation · Agenda DnD
11/04/2026 · 117 pages UI · ~195 routes API · 22 Eliot tools · Score global 99/100
✅ Livraisons S78 — Conv1
  • Centre d'aide /app/aide — 244 Q/R, 20 modules, help-content.ts réécrit
  • HelpPanel contextuel — getArticlesForPage, mapping 35 routes
  • 22 scénarios métier HTML (10 métiers + 11 transverses + index)
  • Guide de paramétrage — 7 phases, checklist 16 items
  • Notice complète d'utilisation — 20 sections, sidebar navigation
  • Documentation embarquée public/docs/ — 20 pages référence
✅ Livraisons S78 — Conv2
  • Sidebar version v2 · S78
  • window.location.href → router.push() partout
  • Couleurs résiduelles corrigées (bon-livraison, agenda, carte, clients)
  • JSDoc — Sidebar, EmailModal, 6 pages prioritaires
  • Agenda DnD — force-dynamic + zones de drop opérationnelles
  • Audit global dette : 0 point résiduel périmètre S78
99Backend
99Frontend
98BDD
99Global
S74
Module AC Avoir Client · PDF BL/BR/DAF/AC · Eliot tool 22 · 1791 colonnes BDD commentées
09/04/2026 · 121 pages UI (+1) · ~189 routes API (+8) · 22 Eliot tools (+1) · Score global 99/100
✅ Livraisons S74 — Conv1
  • Fix docs GitHub Pages S73 — onglet S73 actif, roadmap S74 en cours, pilotage historique
  • Module AC complet — Guards R-26/R-32 · PUT whitelist · GET+POST lignes · page /avoir-client/[id] · liste cliquable
  • BDD — table avoir_client_ligne + 3 triggers AFTER INSERT/UPDATE/DELETE recalcul totaux HT/TTC
  • Route PDF AC enrichie — section lignes avoir_client_ligne + tableau totaux
  • Eliot tool 22 get_avoirs_client — filtres statut+tie_id · format R-33 ✅
✅ Livraisons S74 — Conv2
  • 4 routes PDF éditions : GET /editions/bon-livraison/:id · /bon-retour/:id · /demande-avoir-fourn/:id · /avoir-client/:id
  • Boutons PDF + modals <iframe src> sur pages BL/BR/DAF/[id]
  • Fix SQL f.FAC_NUM (pas f.FAC_NUMERO)
  • 1791 colonnes commentées sur 171 tables micro_logiciel — conventions R-34 FK/PK
  • Fix DEFAULT NULL vs DEFAULT 'NULL' sur nullable datetime/varchar
  • Score BDD 93 → 98/100 — dette technique soldée ✅
99Backend
99Frontend
98BDD
99Global
S73
Fix clients Leaflet · Guard R-26 BL/BR/DAF · Lignes BR+DAF · Liaisons BR→DAF · Fix Eliot R-33 · Formulaire declarations
09/04/2026 · 120 pages UI · ~181 routes API (+6) · 21 Eliot tools · Score global 98/100
✅ Livraisons S73 — Conv1
  • Fix /app/clients — suppression geocoding externe (api-adresse.data.gouv.fr) · vue carte remplacée par placeholder · liste 167 clients stable
  • Guard R-26 injecté sur routes GET /bon-livraison, /bon-retour, /demande-avoir-fourn — empêche interception des routes /:id
  • Fix Eliot R-33 — format tableau tools corrigé (virgules ,{ en début de ligne → undefined) · tool get_declarations_elevage ajouté (21 tools)
  • Pages bon-retour/[id] et demande-avoir-fourn/[id] améliorées (contenu stash Conv2)
✅ Livraisons S73 — Conv2
  • Formulaire declarations elevage — modal creation + modal edition + routes POST/PUT /elevage/declarations
  • Tables bon_retour_ligne + demande_avoir_fourn_ligne — routes GET+POST lignes BR/DAF
  • 6 triggers MariaDB recalcul totaux HT/TTC (AFTER INSERT/UPDATE/DELETE sur lignes BR et DAF)
  • Colonne BR_ID ajoutee dans demande_avoir_fourn · jointures DAF/BR · navigation bidirectionnelle BR↔DAF
  • Notifications portail — test end-to-end confirme · email reel envoye · substitution variables operationnelle
98Backend
99Frontend
93BDD
98Global
S72
Page déclarations élevage · Lien sidebar ELEVEUR · Build 120 pages validé
08/04/2026 · 120 pages UI (+1) · ~173 routes API · Score global 98/100
✅ Livraisons S72
  • Page /app/elevage/declarations — 3 compteurs · filtres statut + type · détection retard (fond rouge + badge ⚠)
  • Lien sidebar ELEVEUR "Déclarations" entre Réservations et Questionnaires
  • Build frontend 120 pages compilées · 0 erreur TypeScript
  • Route GET /api/elevage/declarations existante — 16 déclarations en BDD de test
📋 Données BDD S72
  • 16 déclarations · tous DEC_STATUT = A_FAIRE · types SCC/LOOF
  • Colonnes : DEC_ID · DEC_TYPE · DEC_DATE_EVENEMENT · DEC_ECHEANCE · DEC_STATUT · DEC_MONTANT · DEC_NUM_DOSSIER · DEC_COMMENTAIRE
  • Toutes échéances dépassées → toutes en retard (fond rouge)
98Backend
99Frontend
92BDD
98Global
S71
POST /portail/envoyer · Fix envoyerNotification() · Bouton tarif devis · Pages BL/BR/DAF détail
08/04/2026 · 119 pages UI (+3) · ~173 routes API · 20 Eliot tools · Score global 98/100
✅ Livraisons S71 — Conv1
  • Route POST /portail/envoyer — délègue à envoyerNotification()
  • 4 bugs corrigés dans envoyerNotification() : PCA_ID, PCA_ACTIF, PCA_TOKEN, suppression PCT_ID/PCN_CORPS
  • Historique notifications validé : 3 entrées ENVOYE en BDD · SMTP Gmail actif
  • Docs GitHub Pages S70 pushées — changelog + roadmap + pilotage + API ref groupe 21
✅ Livraisons S71 — Conv2
  • Bouton 💹 Appliquer tarif sur fiche devis [id] — désactivé si FACTURE · bandeau vert/rouge
  • Page /app/bon-livraison/[id] — infos BL + lignes + actions BROUILLON→ENVOYE→LIVRE
  • Page /app/bon-retour/[id] — infos BR + motif + actions →TRAITE/REFUSE
  • Page /app/demande-avoir-fourn/[id] — infos DAF + motif + actions →ACCEPTE→REMBOURSE/REFUSE
  • Numéros cliquables dans les 3 pages liste
98Backend
99Frontend
92BDD
98Global
S70
JSDoc 240/240 ✅ · Notifications Portail · Eliot tools 18-20 registre sanitaire · Sidebar propre · R-30
08/04/2026 · 116 pages UI · ~172 routes API · 20 Eliot tools · Score global 97/100
  • 📝 JSDoc 240 routes — couverture totale, 115 commentaires insérés, règle R-30 instaurée
  • 🔗 Sidebar : lien 💹 Tarification ajouté + hrefs BL/BR/DAF corrigés
  • 🔔 Onglet Notifications Portail : 5 configs PNC_*, toggles, modal HTML, historique envois
  • 🤖 Eliot tool 18 : get_registre_sanitaire — liste/détail séjours sanitaires
  • 🤖 Eliot tool 19 : create_evenement_sanitaire — ajout événement journal
  • 🤖 Eliot tool 20 : get_alertes_vaccins — vaccins manquants RAGE/CHC/LEUCOSE
  • ✅ Page Mémoire Eliot commitée (dette ROUGE S69 soldée)
Changelog détaillé S70 →
S69
Memoire Eliot persistee · Notifications Portail · Fix Clients Leaflet · Export CSV Factures
07/04/2026 · 116 pages UI · ~172 routes API · Score global 96/100
✅ Livraisons S69
  • Memoire Eliot persistee — 2 tables BDD · tool memoriser (17e tool) · page admin /parametres/eliot-memoire
  • Notifications portail client — table config + 5 seeds + envoyerNotification() · hooks devis/facture
  • Export CSV factures — route GET /api/factures/export-csv · 143 factures · BOM UTF-8
  • Fix crash /app/clients — race condition Leaflet (R-29)
  • Fix portailDone undefined — modal portail clients/[id] validee
  • Refonte modal registre sanitaire — charte calquee sur registre C.D.
  • Fix globals.css — selecteurs html.light (R-25)
🔧 Nouvelles regles S69
  • R-25 : Selecteur CSS theme clair = html.light (pas [data-theme])
  • R-26 : Routes specifiques avant routes parametriques (/export-csv avant /:ref)
  • R-27 : FAC_TOTAL_TTC (pas FAC_TOTAL_HT)
  • R-28 : Composants React — declarer tous les etats dans le composant
  • R-29 : Leaflet — mapReady state + setMapReady(true) dans script.onload
97Backend
97Frontend
92BDD
96Global
S68
Charte Registres · AnimalSearchComboBox · Eliot 16 tools · SAV Suite v3.0
07/04/2026 · 115 pages UI · ~165 routes API · Score global 94/100
✅ Livraisons S68
  • Charte graphique registres — 120+ classes Tailwind → variables CSS
  • Composant partagé AnimalSearchComboBox.tsx — recherche ANI_NOM + TIE_RAISON_SOCIALE
  • Route GET /api/animal/search-complet — jointure animal + tiers + race
  • Pré-remplissage formulaires BDD — 4 champs registre sanitaire · 10 champs registre C.D.
  • 3 tools Eliot registre carnivores (get · create · update_sortie) — 16 tools total
  • Export CSV règlements — route + bouton TSX
  • SAV Suite v3.0 publiée — 3 outils fusionnés
🔧 Fixes S68
  • Fix React.useState → useState named import dans registres
  • Fix setSelectedAni dans onSelect (bouton disabled)
  • Fix FAC_NUMERO → FAC_NUM dans export CSV
  • BDD : ANI_ESPECE = 'CHIEN' sur Frimousse (ANI_ID=22)
  • Fix backticks échappés dans hooks injectés
96Backend
95Frontend
91BDD
94Global
S67
Migration instance.use() 100% · Docs 77 pages · Fix Registre C.D.
07/04/2026 · 115 pages UI · ~163 routes API · Score global 93/100
✅ Livraisons S67
  • Migration app.use() → instance.use() — 94 routes · 0 restant
  • Fix registre C.D. : FROM animaux → FROM animal · TIE_NOM → TIE_RAISON_SOCIALE
  • Sidebar ELEVEUR, PET_SITTER, PENSION_CHENIL — item Registre C.D. ajouté
  • Pages docs 58→62 : registres réglementaires + GED + tarification
  • 3 outils SAV refondus (Analyseur · Maintenance · Handover)
  • 4 specs S68 produites
📋 Règles établies S67
  • R-19 : instance.use() — jamais app.use()
  • R-20 : useState AVANT tout return conditionnel
  • R-21 : sous-requêtes registre C.D. (ambiguïté MariaDB)
95Backend
93Frontend
91BDD
93Global
S65
Sidebar Accordéon · Registre Sanitaire · Corrections SQL v4→v9
07/04/2026 · 112 pages UI · ~155 routes API · Score global 90/100
✅ Livraisons S65
  • Sidebar accordéon — 7 groupes repliables + sessionStorage + METIER_MENUS 10 métiers
  • Registre sanitaire — tables BDD + 5 routes + 2 pages (Pension / Pet-Sitter)
  • Corrections SQL v4→v9 : /planning · /avoirs · /achats · /factures/avoir · /clients
  • Migration table race — RACE_GROUPE + RACE_NUMERO_STANDARD FCI
  • Sidebar Achats : BL / BR / DAF / Règlements / Inventaires
🔧 Fixes S65
  • sst.SST_NOM → sst.STY_LIBELLE dans planning
  • FAC_ID_ORIGINE → FAC_ID dans avoirs
  • CMF_ID → ACH_ID dans bon-a-payer
  • Route /api/clients créée (manquait)
90Backend
89Frontend
90BDD
90Global
S64
Architecture GED · Modules BL/BR/DAF/AC · Tarification · Eliot 3 tools
06/04/2026 · 110 pages UI · ~140 routes API · Score global 87/100
✅ Livraisons S64
  • GED Filesystem — volume Docker + table ged_fichier + 57 fichiers migrés
  • Tarification 3 méthodes — COEF_FG+MARGE · COEF_VTE · PRIX_DIRECT
  • Modules BL / BR / DAF / AC — 16 routes + 4 tables + 4 pages TSX
  • Eliot tools : create_seance · get_planning · send_portail_link
  • 14 routes manquantes ajoutées · Page elevage/declarations créée
  • Dette technique S63 soldée (5 routes 404, doublons Eliot, getDbGed)
🔧 Fixes SQL S64
  • devis_contrat_ligne (était devis_ligne)
  • achat_entete (était commande_fournisseur)
  • avoir_client (était avoir)
  • Alias sst dans planning corrigé
88Backend
86Frontend
88BDD
87Global
S66
Registre Carnivores Domestiques · Fix React hooks · Migration GED
07/04/2026 · 115 pages UI · ~159 routes API · Score global 91/100
✅ Livraisons S66
  • Validation scan 20/20 routes opérationnelles
  • Migration GED — 57 entrées dans ged_fichier
  • Fix crash clients/[id] — React error #310 (useState hooks)
  • Table registre_carnivores + 4 routes API
  • 3 pages UI : Pet-Sitter / Pension / Élevage
  • Composant partagé RegistreCarnivorePage.tsx
🔧 Fixes S67 (dette S66)
  • Fix FROM animaux → FROM animal
  • Fix TIE_NOM → TIE_RAISON_SOCIALE (2 occurrences)
  • Sidebars ELEVEUR, PET_SITTER, PENSION_CHENIL — lien Registre C.D.
  • Filtres métier /registre-carnivores validés 200 OK
90Backend
91Frontend
91BDD
91Global
S63
Portail Client déploiement complet + Eliot agent + Email nodemailer
01/04/2026 · commit b687f04
Terminé → S64
API — 11 routes portail
  • POST /portail/auth/login — connexion par token, création session
  • POST /portail/auth/logout — invalidation session
  • GET /portail/animaux — animaux du client connecté
  • GET /portail/seances — séances (SEA_DATE_DEBUT)
  • GET /portail/factures — factures du client
  • GET /portail/notifications — notifications (colonnes PCN_*)
  • GET /portail/admin/acces — liste accès praticien
  • POST /portail/admin/acces — créer accès portail
  • PUT /portail/admin/acces/:id/toggle — activer/désactiver
  • POST /portail/admin/acces/:id/send-link — envoyer lien email
  • POST /portail/seances/:id/confirmer — confirmation séance
  • PUT /param-smtp — sauvegarde config SMTP
Frontend — 2 pages
  • /client/[token] — espace client : login auto, 4 onglets (séances/factures/animaux/notifications)
  • /app/parametres/portail — admin portail : select 500 tiers, email auto depuis TIE_EMAIL, copier/envoyer/toggle
  • Sidebar : tuile 🔗 Portail Client sous groupe Communauté
  • Liste clients : bouton 🔗 Portail par ligne
  • Fiche client : bouton 🔗 Portail dans PageHeader
Eliot — 3 tools S63
  • update_statut_devis — BROUILLON→ENVOYE→ACCEPTE→REFUSE→ANNULE
  • create_facture_depuis_devis — convertit devis ACCEPTE en facture
  • create_reglement — INSERT sans REG_STATUT (corrigé)
Corrections BDD & bugs
  • ANI_CLI (pas TIE_ID) dans table animal
  • SEA_DATE_DEBUT (pas SEA_DATE) dans table seance
  • TIE_RAISON_SOCIALE (pas TIE_NOM/PRENOM)
  • REG_STATUT inexistant → supprimé du INSERT
  • DCE_STATUT enum : FACTURE n'existe pas → retiré
  • FAC_NUM (pas FAC_NUMERO_INT) dans POST /devis/:id/facturer
  • Doublons execTool Eliot nettoyés (3 doublons)
  • send-link ID parsing → urlParts[urlParts.length - 2]
b687f04 S63 - Portail Client complet + Eliot tools S63 + Email nodemailer + Sidebar
11 routes portail 2 pages UI Eliot x3 tools nodemailer validé colonnes BDD corrigées 8 bugs corrigés
Bugs connus → S64
DescriptionModuleCriticité
PUT /devis/:id — lignes non supportéesDevisROUGE
POST /devis/:id/facturer — colonnes facture à vérifierFacturesROUGE
REG_STATUT encore présent dans un INSERT (L~56376)RèglementsROUGE
Tools Eliot doublons dans liste déclarée (3 tools x2)EliotROUGE
create_reglement — test end-to-end à faireEliotORANGE
portailEmail initialisé avant chargement clientPortail adminORANGE
/app/elevage/declarations — page TSX manquanteElevageJAUNE
Export CSV règlementsRèglementsJAUNE
S62
Eliot agent IA + PDF param_edition + Paramètres Éditions GED
30/03/2026
Terminé
API
  • POST /editions/upload-logo — upload logo en GED
  • GET /editions/upload-logo — lecture logo base64
  • POST /editions/upload-filigrane — upload filigrane
  • GET /editions/upload-filigrane — lecture filigrane base64
  • POST /editions/upload-cgv — upload CGV PDF
  • GET /editions/cgv/preview — preview PDF CGV
  • GET /editions/devis/:id — PDF puppeteer avec param_edition
  • GET /editions/facture/:id — PDF puppeteer avec param_edition
Frontend
  • Paramètres Éditions — zone upload logo + filigrane + CGV
  • Aperçu filigrane avec fond transparent
Eliot agent IA
  • Widget Eliot IA — 7 tools : get_client, get_animal, create_devis, create_seance, get_planning, get_factures, send_email
BDD
  • ED_LOGO_BASE64 LONGTEXT, ED_FILIGRANE_BASE64 LONGTEXT
  • PE_CGV_DOC_ID BIGINT, PE_CGV_BASE64 LONGTEXT
Bugs corrigés
  • ANI_ESPECE → ANI_ESPECE_RACE (comptage espèces)
  • Whitelist PARAM_EDITION_COLS (SQL error save)
  • Filigrane texte → zone image upload
  • ✓ entité HTML → Unicode ✓
S61
Widget Eliot IA v2 + Portail Client BDD + planning journalier
29/03/2026
Terminé
Eliot IA v2
  • Drag fluide, panneau adaptatif, 20 avatars WebP compressés
  • Vocal (Web Speech API), nom configurable, position persistée
  • Route POST /ia/chat — proxy Anthropic API côté serveur
  • ANTHROPIC_API_KEY sécurisée (jamais exposée frontend)
Portail Client BDD
  • portail_client_acces (PCA_ID, PCA_TOKEN, PCA_ACTIF…)
  • portail_client_session (PCS_SESSION_TOKEN…)
  • portail_client_notification (PCN_TYPE, PCN_CANAL…)
  • portail_client_action (log des actions client)
Frontend
  • Planning journalier — vue Jour grille 7h-20h30
  • 43 strings SQL multi-lignes fusionnées
S60
Statistiques CA + dashboards 9 métiers + carte clients Leaflet v2
28/03/2026
Terminé
  • 20 nouvelles routes stats : kpis, ca-par-mois, especes, top-clients, villes, especes-ca, planning-seances…
  • Dashboards 9 métiers alimentés en données réelles
  • Carte clients Leaflet v2 — géocodage batch api-adresse.data.gouv.fr, 140/167 localisés
  • Page statistiques : CA 48 014 €, panier moyen 231 €
  • Export CSV factures et séances (UTF-8 BOM, séparateur ;)
S59
RBAC complet — rôles, permissions, middleware
Mars 2026
Terminé
  • GET /roles, GET /roles/:id/permissions, GET /user-permissions
  • 4 rôles : ADMIN, GESTION, CONSULT, COMPTA — middleware permissions par module
  • UI gestion rôles + permissions par module (can_read, can_write, can_delete)
S58
Forfaits & Formules + Yousign signatures UI
Mars 2026
Terminé
  • GET/POST /forfaits, GET/POST /formules, POST /formules/:id/souscrire, POST /formules/:id/consommer
  • Catalogue forfaits par métier, souscriptions clients, consommation séances auto-statut EPUISEE
  • Signatures Yousign — paramètres UI, demandes, webhook statut
S57
CRM complet — leads, opportunités, activités, campagnes
Mars 2026
Terminé
  • GET /leads, /crm/leads, /crm/stats, /crm/opportunites, /crm/activites, /crm/campagnes, /crm/tags
  • crm_lead, crm_opportunite, crm_activite, crm_note, crm_campagne, crm_tag, crm_tag_lien
  • Pipeline CRM kanban, formulaire lead public, campagnes ciblées
S56
Agenda planning séances + charte graphique
Mars 2026
Terminé
  • Agenda planning séances — vue semaine + drag & drop
  • Charte graphique globale navy/gold appliquée sur toutes les pages
  • Boutons btn-danger, AideContextuelle uniformisée
S55
Pages paiements + export FEC + comptabilité
Mars 2026
Terminé
  • GET /comptabilite/fec-export, /bilan/*, plan-comptable
  • Page règlements, export FEC conforme PCG 2025, bilan comptable
S54
Stock PMP + inventaires + sorties stock
Mars 2026
Terminé
  • param_stock, stock_lot, stock_mouvement, inventaire, inventaire_ligne, sortie_stock
  • Routes /stock/* — mouvements, inventaires, correction PMP
  • Pages stock liste, mouvements, inventaires, sorties, correction PMP
S53
Achats fournisseurs complet + élevage
Mars 2026
Terminé
  • demande_prix, commande_fournisseur, bon_livraison_fourn, facture_fournisseur, bon_retour, avoir_fournisseur, reglement_fournisseur
  • elevage : portées, saillies, gestations, réservations chiots, généalogie
  • Routes /achats/* complet + /elevage/*
S52
GED CAC évolution + carte Leaflet v1 + notice v4
25/03/2026
Terminé
  • GET /ged-cac/animal/:id/evolution, /ged-cac/animal/:id/score
  • Carte clients Leaflet v1 — géocodage batch via api-adresse.data.gouv.fr
  • Notice utilisateur v4 — élevage, achats, inventaires, RS, topbar v2
  • Uniformisation boutons ← Retour et + Nouveau
S51
GED avancée + réseaux sociaux + topbar v2
Mars 2026
Terminé
  • GET /reseaux-sociaux/comptes, /reseaux-sociaux/publications
  • GED polymorphe — documents par type (ANIMAL, FACTURE, TIERS, EDC_FICHE…)
  • Topbar v2 — notifications, profil, accès rapide
S50
Charte graphique globale navy/gold + BDD commentaires
Mars 2026
Terminé
  • Charte navy/gold appliquée sur 96 pages UI
  • PDF modal uniquement — jamais window.open()
  • Commentaires BDD 241/241 colonnes documentées
  • Doublon AideContextuelle supprimé, btn-danger unifié
S30→S48
Fondations — Auth, CRUD, PDF, Agenda, CRM, Stats, PWA
Janvier → Mars 2026
Terminés
  • S48 — Agenda planning séances, signatures Yousign UI, pages paiements
  • S47 — CRM complet (leads, opportunités, activités, campagnes, tags)
  • S46 — Seeds démo : Jean Dujardin, Frimousse (Malinois), devis/factures
  • S44-S45 — Dashboards métiers, devis/new v2, droits utilisateurs RBAC
  • S42-S43 — Statistiques avancées, questionnaires, export FEC
  • S38-S41 — Programmes suivi CAC, SMS Twilio, Stripe portail, PWA mobile
  • S35-S37 — GED complète, factures fournisseurs, avoirs
  • S32-S34 — Agenda visuel, templates devis, SMTP, PDF avancé
  • S30-S31 — Setup BDD, Auth JWT, CRUD tiers/animaux/séances