Files
towercontrol/TODO.md
Julien Froidefond b2a8c961a8 feat: enhance Jira sync and update TODO.md
- Added handling for unknown statuses in Jira sync, logging them for better debugging and mapping to "todo" by default.
- Updated sync result structure to include unknown statuses and reflected this in the UI for visibility.
- Adjusted JQL to include recently resolved tasks for better status updates during sync.
- Marked the integration of unknown status handling as complete in TODO.md.
2025-10-04 11:49:41 +02:00

14 KiB

TowerControl v2.0 - Gestionnaire de tâches moderne

Idées à developper

  • Optimisations Perf : requetes DB
  • PWA et mode offline

🐛 Problèmes relevés en réunion - Corrections UI/UX

🎨 Design et Interface

  • Homepage cards : toute en variant glass
  • Icône Kanban homepage - Changer icône sur la page d'accueil, pas lisible (utiliser une lib)
  • Lisibilité label graph par tag - Améliorer la lisibilité des labels dans les graphiques par tag
  • Tag homepage - Problème d'affichage des graphs de tags sur la homepage côté lisibilité, certaines icones ne sont pas entièrement visible, et la légende est trop proche du graphe.
  • Tâches récentes - Revoir l'affichage et la logique des tâches récentes
  • Header dépasse en tablet - Corriger le débordement du header sur tablette
  • Icônes agenda et filtres - Améliorer les icônes de l'agenda et des filtres dans desktop controls (utiliser une lib)
  • Réunion/tâche design - Revoir le design des bouton dans dailySectrion : les toggles avoir un compposant ui
  • Légende calendrier et padding - Corriger l'espacement et la légende du calendrier dans daily
  • EditModal task couleur calendrier - Problème de couleur en ajout de taches dans tous les icones calendriers; colmler au thème
  • Weekly deux boutons actualiser - Corriger la duplication des boutons d'actualisation
  • Solarized ne doit pas être un soleil - Corriger l'icône du thème Solarized
  • Emoji interdit dans UI - Vérifier et supprimer toutes les emojis dans l'interface, remplacer par lucide-react
  • Settings intégration : icônes - Problème avec les icônes "Arrêté" et "Actif" : doivent etre les memes
  • Settings backup UI - Revoir l'UI pour coller au style des intégrations
  • AlertBanner : hover et bug - Corriger les problèmes de hover et bugs
  • Deux modales - Problème de duplication de modales
  • Control panel et select - Problème avec les contrôles et sélecteurs
  • TaskCard et Kanban transparence - Appliquer la transparence sur le background et non sur la card
  • Recherche Kanban desktop controls - Ajouter icône et label : "rechercher" pour rapetir
  • Largeur page Kanban - Réduire légèrement la largeur et revoir toutes les autres pages
  • Icône thème à gauche du profil - Repositionner l'icône de thème dans le header
  • Déconnexion trop petit et couleur - Améliorer le bouton de déconnexion
  • Fond modal trop opaque - Réduire l'opacité du fond des modales
  • Couleurs thème clair et TFS Jira Kanban - Harmoniser les couleurs du thème clair
  • États sélectionnés desktop control - Revoir les couleurs des états sélectionnés pour avoir le joli bleu du dropdown partout
  • Dépasse 1000 caractères en edit modal task - Corriger la limite (pas de limite) et revoir la quickcard description
  • UI si échéance et trop de labels dans le footer de card - Améliorer l'affichage en mode détaillé TaskCard; certains boutons sont sur deux lignes ce qui casse l'affichage
  • Gravatar - Implémenter l'affichage des avatars Gravatar

🔧 Fonctionnalités et Intégrations

  • Synchro Jira et TFS shortcuts - Ajouter des raccourcis et bouton dans Kanban
  • Intégration suppressions Jira/TFS - Aligner la gestion des suppressions sur TFS, je veux que ce qu'on a récupéré dans la synchro, quand ca devient terminé dans Jira ou TFS, soit marqué comme terminé dans le Kanban et non supprimé du kanban.
  • Log d'activité - Implémenter un système de log d'activité (feature potentielle)

🚀 Nouvelles idées & fonctionnalités futures

🎯 Jira - Suivi des demandes en attente

  • Page "Jiras en attente"
    • Liste des Jiras créés par moi mais non assignés à mon équipe
    • Suivi des demandes formulées à d'autres équipes
    • Filtrage par projet, équipe cible, ancienneté
  • Nouveau modèle de données
    • Table séparée pour les "demandes en attente" (différent des tâches Kanban)
    • Champs spécifiques : demandeur, équipe cible, statut de traitement
    • Notifications quand une demande change de statut

👥 Gestion multi-utilisateurs (PROJET MAJEUR)

Architecture actuelle → Multi-tenant

  • Problème : App mono-utilisateur avec données globales
  • Solution : Transformation en app multi-utilisateurs avec isolation des données + système de rôles

Plan de migration

  • Phase 1: Authentification

    • Système de login/mot de passe (NextAuth.js)
    • Gestion des sessions sécurisées
    • Pages de connexion/inscription/mot de passe oublié
    • Middleware de protection des routes
  • Phase 2: Modèle de données multi-tenant + Rôles

    • Modèle User complet
      • Table users (id, email, password, name, role, createdAt, updatedAt)
      • Enum UserRole : ADMIN, MANAGER, USER
      • Champs optionnels : avatar, timezone, language
    • Relations hiérarchiques
      • Table user_teams pour les relations manager → users
      • Champ managerId dans users (optionnel, référence vers un manager)
      • Support des équipes multiples par utilisateur
    • Migration des données existantes
      • Créer un utilisateur admin par défaut avec toutes les données actuelles
      • Ajouter userId à toutes les tables (tasks, daily, tags, preferences, etc.)
      • Contraintes de base de données pour l'isolation
      • Index sur userId pour les performances
  • Phase 3: Système de rôles et permissions

    • Rôle ADMIN
      • Gestion complète des utilisateurs (CRUD)
      • Assignation/modification des rôles
      • Accès à toutes les données système (analytics globales)
      • Configuration système (intégrations Jira/TFS globales)
      • Gestion des équipes et hiérarchies
    • Rôle MANAGER
      • Vue sur les tâches/daily de ses équipiers
      • Assignation de tâches à ses équipiers
      • Analytics d'équipe (métriques, deadlines, performance)
      • Création de tâches pour son équipe
      • Accès aux rapports de son équipe
    • Rôle USER
      • Accès uniquement à ses propres données
      • Réception de tâches assignées par son manager
      • Gestion de son daily/kanban personnel
    • Middleware de permissions
      • Validation des droits d'accès par route
      • Helper functions canAccess(), canManage(), isAdmin()
      • Protection automatique des API routes
  • Phase 4: Services et API avec rôles

    • Services utilisateurs
      • user-management.ts : CRUD utilisateurs (admin only)
      • team-management.ts : Gestion des équipes (admin/manager)
      • role-permissions.ts : Logique des permissions
    • Modification des services existants
      • Tous les services filtrent par userId OU permissions manager
      • Middleware d'injection automatique du userId + userRole
      • Services analytics étendus pour les managers
      • Validation que chaque utilisateur ne voit que ses données autorisées
  • Phase 5: UI et UX multi-rôles

    • Interface Admin
      • Page de gestion des utilisateurs (/admin/users)
      • Création/modification/suppression d'utilisateurs
      • Assignation des rôles et équipes
      • Dashboard admin avec métriques globales
    • Interface Manager
      • Vue équipe avec tâches de tous les équipiers
      • Assignation de tâches à l'équipe
      • Dashboard manager avec analytics d'équipe
      • Gestion des deadlines et priorités d'équipe
    • Interface commune
      • Header avec profil utilisateur, rôle et déconnexion
      • Onboarding différencié par rôle
      • Navigation adaptée aux permissions
      • Indicateurs visuels du rôle actuel
  • Phase 6: Fonctionnalités collaboratives

    • Assignation de tâches
      • Managers peuvent créer et assigner des tâches
      • Notifications de nouvelles tâches assignées
      • Suivi du statut des tâches assignées
    • Partage et visibilité
      • Tâches partagées entre équipiers
      • Commentaires et collaboration sur les tâches
      • Historique des modifications par utilisateur

Considérations techniques

  • Base de données : Ajouter userId partout + contraintes
  • Sécurité : Validation côté serveur de l'isolation des données
  • Performance : Index sur userId, pagination pour gros volumes
  • Migration : Script de migration des données existantes

🤖 Intégration IA avec Mistral (Phase IA)

Socle technique

  • Phase 1: Infrastructure Mistral

    • Configuration du client Mistral local
      • Service mistral-client.ts avec connexion au modèle local
      • Configuration des endpoints et paramètres (température, tokens, etc.)
      • Gestion des erreurs et timeouts
      • Cache des réponses pour éviter les appels répétés
    • Système de prompts
      • Template engine pour les prompts structurés
      • Prompts spécialisés par fonctionnalité (analyse, génération, classification)
      • Versioning des prompts pour A/B testing
      • Logging des interactions pour amélioration continue
    • Sécurité et performance
      • Rate limiting pour éviter la surcharge du modèle local
      • Validation des inputs avant envoi au modèle
      • Sanitization des réponses IA
      • Monitoring des performances (latence, tokens utilisés)
  • Phase 2: Services IA développés avec les features

    • Services créés au fur et à mesure des besoins des fonctionnalités
    • Pas de développement anticipé - implémentation juste-à-temps
    • Architecture modulaire pour faciliter l'ajout de nouveaux services
  • Phase 3: Configuration et gestion de l'assistant

    • Page de configuration IA (/settings/ai-assistant)
      • Configuration du modèle Mistral (endpoint, température, max tokens)
      • Activation/désactivation des fonctionnalités IA par catégorie
      • Paramètres de personnalisation (style de réponses, niveau d'agressivité)
      • Configuration des seuils (confiance minimale, fréquence des suggestions)
    • Gestion des prompts personnalisés
      • Interface pour modifier les prompts par fonctionnalité
      • Aperçu en temps réel des modifications
      • Sauvegarde/restauration des configurations
      • Templates de prompts prédéfinis
    • Monitoring et analytics IA
      • Dashboard des performances IA (latence, tokens utilisés, coût)
      • Historique des interactions et taux de succès
      • Métriques d'utilisation par fonctionnalité
      • Logs des erreurs et suggestions d'amélioration
    • Système de feedback
      • Boutons "👍/👎" sur chaque suggestion IA
      • Collecte des retours utilisateur pour amélioration
      • A/B testing des différents prompts
      • Apprentissage des préférences utilisateur

Fonctionnalités IA concrètes

🎯 Smart Task Creation

  • Bouton "Créer avec IA" dans le Kanban
    • Input libre : "Préparer présentation client pour vendredi"
    • IA génère : titre, description, estimation durée, sous-tâches
    • Mapping prioritaire avec tags existants : IA propose uniquement des tags déjà utilisés
    • Validation/modification avant création

🧠 Daily Assistant

  • Bouton "Smart Daily" dans la page Daily
    • Input libre : "Réunion client 14h, finir le rapport, appeler le fournisseur"
    • IA génère une liste de checkboxes structurées
    • Validation/modification avant ajout au Daily
    • Pas de génération automatique - uniquement sur demande utilisateur
  • Smart Checkbox Suggestions
    • Pendant la saisie, IA propose des checkboxes similaires

🎨 Smart Tagging

  • Auto-tagging des nouvelles tâches
    • IA analyse le titre/description
    • Propose automatiquement 2-3 tags existants pertinents
    • Apprentissage des tags utilisés par l'utilisateur
  • Suggestions de tags pendant la saisie
    • Dropdown intelligent avec tags existants probables uniquement
    • Tri par fréquence d'usage et pertinence

💬 Chat Assistant

  • Widget chat en bas à droite
    • "Quelles sont mes tâches urgentes cette semaine ?"
    • "Comment optimiser mon planning demain ?"
    • "Résume-moi mes performances de ce mois"
  • Recherche sémantique
    • "Tâches liées au projet X" même sans tag exact
    • "Tâches que j'ai faites la semaine dernière"
    • Recherche par contexte, pas juste mots-clés

📈 Smart Reports

  • Génération automatique de rapports
    • Bouton "Générer rapport IA" dans analytics
    • IA analyse les données et génère un résumé textuel
    • Insights personnalisés ("Tu es plus productif le matin")
  • Alertes intelligentes
    • "Attention : tu as 3 tâches urgentes non démarrées"
    • "Suggestion : regrouper les tâches similaires"
    • Notifications contextuelles et actionables

Quick Actions

  • Bouton "Optimiser" sur une tâche
    • IA suggère des améliorations (titre, description)
    • Propose des tags existants pertinents
    • Propose des sous-tâches manquantes
    • Estimation de durée plus précise
  • Smart Duplicate Detection
    • "Cette tâche ressemble à une tâche existante"
    • Suggestions de fusion ou différenciation
    • Évite la duplication accidentelle
    • Exclusion des tâches avec tag "objectif principal" : IA ignore ces tâches dans les comparaisons

Focus sur l'expérience utilisateur et le design moderne. App standalone prête pour évoluer vers une plateforme d'intégration complète.