Files
towercontrol/TODO.md
2025-09-23 10:45:57 +02:00

11 KiB

TowerControl v2.0 - Gestionnaire de tâches moderne

Autre Todos

  • Désactiver le hover sur les taskCard

🔧 Phase 6: Fonctionnalités avancées (Priorité 6)

6.1 Gestion avancée des tâches

  • Actions en lot (sélection multiple)
  • Sous-tâches et hiérarchie
  • Dates d'échéance et rappels
  • Assignation et collaboration
  • Templates de tâches

6.2 Personnalisation et thèmes

  • Mode sombre/clair
  • Personnalisation des couleurs
  • Configuration des colonnes Kanban
  • Préférences utilisateur

🚀 Phase 7: Intégrations futures (Priorité 7)

7.1 Intégrations externes (optionnel)

  • Import/Export depuis d'autres outils
  • API webhooks pour intégrations
  • Synchronisation cloud (optionnel)
  • Notifications push

7.2 Optimisations et performance

  • Optimisation des requêtes DB
  • Pagination et virtualisation
  • Cache côté client
  • PWA et mode offline

🚀 Nouvelles idées & fonctionnalités futures

🔄 Intégration TFS/Azure DevOps

  • Lecture des Pull Requests TFS : Synchronisation des PR comme tâches
    • PR arrivent en backlog avec filtrage par team project
    • Synchronisation aussi riche que Jira (statuts, assignés, commentaires)
    • Filtrage par team project, repository, auteur
  • Architecture plug-and-play pour intégrations
    • Refactoriser pour interfaces génériques d'intégration
    • Interface IntegrationService commune (Jira, TFS, GitHub, etc.)
    • UI générique de configuration des intégrations
    • Système de plugins pour ajouter facilement de nouveaux services

📋 Daily - Gestion des tâches non cochées

  • Section des tâches en attente
    • Liste de toutes les todos non cochées (historique complet)
    • Filtrage par date (7/14/30 jours), catégorie (tâches/réunions), ancienneté
    • Action "Archiver" pour les tâches ni résolues ni à faire
    • Section repliable dans la page Daily (sous les sections Hier/Aujourd'hui)
    • Bouton "Déplacer à aujourd'hui" pour les tâches non résolues
    • Indicateurs visuels d'ancienneté (couleurs vert→rouge)
    • Actions par tâche : Cocher, Archiver, Supprimer
  • Statut "Archivé" basique
    • Marquage textuel [ARCHIVÉ] dans le texte de la tâche
    • Interface pour voir les tâches archivées (visuellement distinctes)
    • Possibilité de désarchiver une tâche
    • Champ dédié en base de données (actuellement via texte)

🎯 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

🏗️ Architecture & technique

  • Système d'intégrations modulaire
    • Interface IntegrationProvider standardisée
    • Configuration dynamique des intégrations
    • Gestion des credentials par intégration
  • Modèles de données étendus
    • PullRequest pour TFS/GitHub
    • PendingRequest pour les demandes Jira
    • ArchivedTask pour les daily archivées
  • UI générique
    • Composants réutilisables pour toutes les intégrations
    • Configuration unifiée des filtres et synchronisations
    • Dashboard multi-intégrations

🔄 Refactoring Services par Domaine

Organisation cible des services:

src/services/
├── core/           # Services fondamentaux
├── analytics/      # Analytics et métriques  
├── data-management/# Backup, système, base
├── integrations/   # Services externes
├── task-management/# Gestion des tâches

Phase 1: Services Core (infrastructure)

  • Déplacer database.tscore/database.ts
    • Corriger tous les imports internes des services
    • Corriger import dans scripts/reset-database.ts
  • Déplacer system-info.tscore/system-info.ts
    • Corriger imports dans actions/system
    • Corriger import dynamique de backup
  • Déplacer user-preferences.tscore/user-preferences.ts
    • Corriger 13 imports externes (actions, API routes, pages)
    • Corriger 3 imports internes entre services

Phase 2: Analytics & Métriques

  • Déplacer analytics.tsanalytics/analytics.ts
    • Corriger 2 imports externes (actions, components)
  • Déplacer metrics.tsanalytics/metrics.ts
    • Corriger 7 imports externes (actions, hooks, components)
  • Déplacer manager-summary.tsanalytics/manager-summary.ts
    • Corriger 3 imports externes (components, pages)
    • Corriger imports database vers ../core/database

Phase 3: Data Management

  • Déplacer backup.tsdata-management/backup.ts
    • Corriger 6 imports externes (clients, components, pages, API)
    • Corriger imports relatifs vers ../core/ et ../../lib/
  • Déplacer backup-scheduler.tsdata-management/backup-scheduler.ts
    • Corriger import dans script backup-manager.ts
    • Corriger imports relatifs entre services

Phase 4: Task Management

  • Déplacer tasks.tstask-management/tasks.ts
    • Corriger 7 imports externes (pages, API routes, actions)
    • Corriger import dans script seed-data.ts
  • Déplacer tags.tstask-management/tags.ts
    • Corriger 8 imports externes (pages, API routes, actions)
    • Corriger import dans script seed-tags.ts
  • Déplacer daily.tstask-management/daily.ts
    • Corriger 6 imports externes (pages, API routes, actions)
    • Corriger imports relatifs vers ../core/database

Phase 5: Intégrations

  • Déplacer tfs.tsintegrations/tfs.ts
    • Corriger 10 imports externes (actions, API routes, components, types)
    • Corriger imports relatifs vers ../core/
  • Déplacer services Jiraintegrations/jira/
    • jira.tsintegrations/jira/jira.ts
    • jira-scheduler.tsintegrations/jira/scheduler.ts
    • jira-analytics.tsintegrations/jira/analytics.ts
    • jira-analytics-cache.tsintegrations/jira/analytics-cache.ts
    • jira-advanced-filters.tsintegrations/jira/advanced-filters.ts
    • jira-anomaly-detection.tsintegrations/jira/anomaly-detection.ts
    • Corriger 18 imports externes (actions, API routes, hooks, components)
    • Corriger imports relatifs entre services Jira

Phase 6: Cleaning

  • Uniformiser les imports absolus dans tous les services
    • Remplacer tous les imports relatifs ../ par @/services/...
    • Corriger l'import dynamique dans system-info.ts
    • 12 imports relatifs → imports absolus cohérents
  • Isolation et organisation des types & interfaces
    • Analytics types (src/services/analytics/types.ts)
      • Extraire TaskType, CheckboxType de manager-summary.ts
      • Extraire KeyAccomplishment, UpcomingChallenge, ManagerSummary de manager-summary.ts
      • Créer types.ts centralisé pour le dossier analytics
      • Remplacer tous les imports par import type { ... } from './types'
    • Task Management types (src/services/task-management/types.ts)
      • Analyser quels types spécifiques manquent aux services tasks/tags/daily
      • Créer types.ts pour les types métier spécifiques au task-management
      • Uniformiser les imports avec import type { ... } from './types'
    • Jira Integration types (src/services/integrations/jira/types.ts)
      • Extraire CacheEntry de analytics-cache.ts
      • Créer types spécifiques aux services Jira (configs, cache, anomalies)
      • Centraliser les types d'intégration Jira
      • Uniformiser les imports avec import type { ... } from './types'
    • TFS Integration types (src/services/integrations/types.ts)
      • Analyser les types spécifiques à TFS dans tfs.ts
      • Créer types d'intégration TFS si nécessaire
      • Préparer structure extensible pour futures intégrations
    • Core services types (src/services/core/types.ts)
      • Analyser si des types spécifiques aux services core sont nécessaires
      • Types pour database, system-info, user-preferences
    • Conversion des imports en import type
      • Analyser tous les imports de types depuis @/lib/types dans services
      • Remplacer par import type { ... } from '@/lib/types' quand applicable
      • Vérifier que les imports de valeurs restent normaux (sans type)

Points d'attention pour chaque service:

  1. Identifier tous les imports du service (grep)
  2. Déplacer le fichier vers le nouveau dossier
  3. Corriger les imports externes (actions, API, hooks, components)
  4. Corriger les imports internes entre services
  5. Tester que l'app fonctionne toujours
  6. Commit le déplacement d'un service à la fois

### 👥 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

#### **Plan de migration**
- [ ] **Phase 1: Authentification**
  - [ ] Système de login/mot de passe (NextAuth.js ou custom)
  - [ ] 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**
  - [ ] Ajouter `userId` à toutes les tables (tasks, daily, tags, preferences, etc.)
  - [ ] Migration des données existantes vers un utilisateur par défaut
  - [ ] Contraintes de base de données pour l'isolation
  - [ ] Index sur `userId` pour les performances

- [ ] **Phase 3: Services et API**
  - [ ] Modifier tous les services pour filtrer par `userId`
  - [ ] Middleware d'injection automatique du `userId` dans les requêtes
  - [ ] Validation que chaque utilisateur ne voit que ses données
  - [ ] API d'administration (optionnel)

- [ ] **Phase 4: UI et UX**
  - [ ] Header avec profil utilisateur et déconnexion
  - [ ] Onboarding pour nouveaux utilisateurs
  - [ ] Gestion du profil utilisateur
  - [ ] Partage optionnel entre utilisateurs (équipes)

#### **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

---

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