# TowerControl v2.0 - Gestionnaire de tâches moderne ## Idées à developper - [ ] Optimisations Perf : requetes DB - [ ] PWA et mode offline --- ## 🚀 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.*