edtech / tasks /admin-ux-plan.md
CognxSafeTrack
feat(admin): UX non-tech complète + i18n 4 langues
66ff7a1

Plan d'implémentation — Admin UX/UI Non-Tech

Créé le : 2026-05-13
Objectif : Rendre l'interface admin utilisable par des non-développeurs, en s'appuyant sur l'IA conversationnelle pour guider chaque action clé.


Statut global

Phase Description Statut
Phase 1 Gains immédiats — corrections sans refonte ✅ Terminé
Phase 2 Chat IA global toutes les pages ✅ Terminé
Phase 3 Onboarding WhatsApp guidé ✅ Terminé
Phase 4 Templates assistés par IA ✅ Terminé
Phase 5 Agent IA — setup guidé ✅ Terminé

Phase 1 — Gains immédiats (sans refonte)

Objectif : corriger les points de friction les plus bloquants en touchant un minimum de code.

1.1 — Masquer Flow Config JSON (SettingsPage)

  • Fichier : apps/admin/src/pages/SettingsPage.tsx
  • Action : Enrober le textarea flowConfig dans un <details> collapsé par défaut avec le label "⚙️ Configuration avancée (développeurs)"
  • Statut : ✅ Terminé

1.2 — Remplacer "X chunks" (AIAgentSetup)

  • Fichier : apps/admin/src/pages/AIAgentSetup.tsx
  • Action : Indicateur de couverture qualitative (Excellente/Bonne/Insuffisante) + texte humain "X passages analysés" + conseil si volume insuffisant
  • Statut : ✅ Terminé

1.3 — Placeholder guidé pour le champ Rôle (AIAgentSetup)

  • Fichier : apps/admin/src/pages/AIAgentSetup.tsx
  • Action : Placeholder exemple concret + texte d'aide sous le champ
  • Statut : ✅ Terminé

1.4 — Bloc d'aide contextuel — Connexion WhatsApp (OnboardingWizard)

  • Fichier : apps/admin/src/pages/OnboardingWizard.tsx
  • Action : <details> collapsable expliquant WABA ID, Business ID, Token système avec liens directs Meta + conseil de basculer vers Facebook Signup si nouveau
  • Statut : ✅ Terminé

1.5 — Labels humains pour les clés API (SettingsPage)

  • Fichier : apps/admin/src/pages/SettingsPage.tsx
  • Action : Texte explicatif enrichi : état locked (ce que SCALE débloque) + état unlocked (clés chiffrées, impact sur les crédits)
  • Statut : ✅ Terminé

Phase 2 — Chat IA global (toutes les pages)

Objectif : étendre le chat billing à toute l'interface, avec un contexte qui change selon la page.

2.1 — Extraire AdminChat en composant générique

  • Fichier : apps/admin/src/components/AdminChat.tsx (nouveau)
  • Action : Widget flottant (bouton 💬 + panneau) avec prop page: AdminChatPage, questions rapides contextuelles par page, reset automatique au changement de page
  • Statut : ✅ Terminé

2.2 — Endpoint API contextualisé

  • Fichier : apps/api/src/routes/billing.ts
  • Action : Param page ajouté au body du POST /chat. Si page === 'billing' → contexte complet (wallet + usage). Sinon → contexte léger (org + mode + aide contextuelle par page : settings, templates, agent, onboarding)
  • Statut : ✅ Terminé

2.3 — Intégrer AdminChat dans MainLayout

  • Fichier : apps/admin/src/components/layouts/MainLayout.tsx
  • Action : Hook useAdminChatPage() mappe la route courante vers la page de chat. Widget masqué sur /billing (qui a son propre chat inline). Affiché uniquement si une organisation est sélectionnée.
  • Statut : ✅ Terminé

Phase 3 — Onboarding WhatsApp guidé

Objectif : zéro abandon sur l'étape de connexion WhatsApp.

3.1 — Stepper visuel dans l'étape WhatsApp

  • Fichier : apps/admin/src/pages/OnboardingWizard.tsx
  • Action : Badges numérotés ①②③ devant chaque champ (WABA ID → Business ID → Token) avec lien direct Meta pour chacun
  • Statut : ✅ Terminé

3.2 — Validation token WhatsApp en temps réel

  • Fichiers : OnboardingWizard.tsx + apps/api/src/routes/organizations.ts
  • Action : Endpoint POST /v1/organizations/whatsapp-validate-token (ping graph.facebook.com/me). Feedback visuel sur le champ : ✓ vert / ✗ rouge / … checking + message explicatif sous le champ
  • Statut : ✅ Terminé

3.3 — Détection d'expiration du token (SettingsPage)

  • Fichiers : SettingsPage.tsx + apps/api/src/routes/organizations.ts
  • Action : Endpoint GET /v1/organizations/:id/whatsapp-status (déchiffre le token + ping Meta). SettingsPage charge le statut au mount. Bannière rouge avec instructions si token invalide/expiré.
  • Statut : ✅ Terminé

Phase 4 — Création de templates assistée par IA

Objectif : un non-tech peut créer un template WhatsApp correct du premier coup.

4.1 — Générateur de template via IA

  • Fichiers : TemplatesPage.tsx + apps/api/src/routes/billing.ts
  • Action : Endpoint POST /v1/billing/template-generate (gpt-4o-mini, response_format JSON). Dans la modal : champ description + bouton "Générer" → auto-remplit nom, corps, catégorie.
  • Statut : ✅ Terminé

4.2 — Validation en temps réel des variables

  • Fichier : apps/admin/src/pages/TemplatesPage.tsx
  • Action : Regex {{...}} sur le body en temps réel. Badges colorés pour chaque variable : bleu si {{1}} (valide), amber si {{texte}} (invalide). Bouton Submit bloqué si variables invalides.
  • Statut : ✅ Terminé

4.3 — Prévisualisation rendu WhatsApp

  • Fichier : apps/admin/src/pages/TemplatesPage.tsx
  • Action : Bulle WhatsApp (fond #ECE5DD, bulle blanche) avec {{1}} → exemples réels (Jean Dupont, 3 000 FCFA…). Apparaît dès que le corps n'est pas vide.
  • Statut : ✅ Terminé

4.4 — Explication politique d'approbation Meta

  • Fichier : apps/admin/src/pages/TemplatesPage.tsx
  • Action : Texte contextuel sous le sélecteur Catégorie : Marketing → "24-48h, évitez les mots trop commerciaux" / Utilitaire → "approbation plus rapide, confirmations/rappels".
  • Statut : ✅ Terminé

Phase 5 — Agent IA — Setup guidé

Objectif : configurer un agent opérationnel sans comprendre ce qu'est un LLM.

5.1 — Feedback post-upload enrichi

  • Fichier : apps/admin/src/pages/AIAgentSetup.tsx
  • Action : Après upload succès → card "✨ Que se passe-t-il maintenant ?" expliquant le délai d'indexing et invitant à tester dans le panneau de droite
  • Statut : ✅ Terminé

5.2 — Suggestion de ton selon le secteur

  • Fichier : apps/admin/src/pages/AIAgentSetup.tsx
  • Action : Fetch org mode au chargement → pré-sélection automatique (EDTECH→Pédagogue, CRM→Amical, AI_AGENT→Professionnel, CUSTOMER_SERVICE→Direct). Badge sur le ton recommandé. Description contexuelle + "recommandé pour votre secteur" sous les boutons.
  • Statut : ✅ Terminé

5.3 — Blocage activation si KB vide

  • Fichier : apps/admin/src/pages/AIAgentSetup.tsx
  • Action : Bannière amber en haut de page si KB vide + mode AI_AGENT. Bouton Save désactivé avec message explicatif.
  • Statut : ✅ Terminé

5.4 — Test de l'agent en direct (chat preview)

  • Fichiers : AIAgentSetup.tsx + apps/api/src/routes/billing.ts
  • Action : Endpoint POST /v1/billing/agent-test (personalityConfig → system prompt → gpt-4o-mini). Panneau de droite remplacé par un chat interactif avec input + bulles. Indicateur de chargement animé.
  • Statut : ✅ Terminé

Ordre d'exécution recommandé

Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5

Les phases 1 sont indépendantes et peuvent être faites en parallèle.
Les phases 3–5 dépendent de la Phase 2 (AdminChat générique).


Légende

Symbole Signification
Terminé
En cours
🔲 À faire
Bloqué