From 58353a0dec0ffe0f3747bbeb929f4870db744f70 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Sat, 27 Sep 2025 07:17:10 +0200 Subject: [PATCH] feat: refactor service organization and enhance Daily task management - Restructured service files into dedicated domains (core, analytics, data-management, integrations, task-management) for better organization and maintainability. - Updated imports across services to reflect new structure, ensuring all references are correct. - Added new features to the Daily page, including a section for uncompleted tasks, archiving options, and visual indicators for task age, improving task management experience. --- TODO.md | 132 ------------------------------------------------ TODO_ARCHIVE.md | 111 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 110 insertions(+), 133 deletions(-) diff --git a/TODO.md b/TODO.md index 95d152a..11da6f7 100644 --- a/TODO.md +++ b/TODO.md @@ -36,32 +36,6 @@ ## 🚀 Nouvelles idées & fonctionnalités futures -### 🔄 Intégration TFS/Azure DevOps -- [x] **Lecture des Pull Requests TFS** : Synchronisation des PR comme tâches - - [x] PR arrivent en backlog avec filtrage par team project - - [x] Synchronisation aussi riche que Jira (statuts, assignés, commentaires) - - [x] Filtrage par team project, repository, auteur -- [x] **Architecture plug-and-play pour intégrations** - - [x] Refactoriser pour interfaces génériques d'intégration - - [x] Interface `IntegrationService` commune (Jira, TFS, GitHub, etc.) - - [x] UI générique de configuration des intégrations - - [x] Système de plugins pour ajouter facilement de nouveaux services - -### 📋 Daily - Gestion des tâches non cochées -- [x] **Section des tâches en attente** - - [x] Liste de toutes les todos non cochées (historique complet) - - [x] Filtrage par date (7/14/30 jours), catégorie (tâches/réunions), ancienneté - - [x] Action "Archiver" pour les tâches ni résolues ni à faire - - [x] Section repliable dans la page Daily (sous les sections Hier/Aujourd'hui) - - [x] **Bouton "Déplacer à aujourd'hui"** pour les tâches non résolues - - [x] Indicateurs visuels d'ancienneté (couleurs vert→rouge) - - [x] Actions par tâche : Cocher, Archiver, Supprimer -- [x] **Statut "Archivé" basique** - - [x] Marquage textuel [ARCHIVÉ] dans le texte de la tâche - - [x] 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 @@ -86,112 +60,6 @@ - [ ] 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) ✅ -- [x] **Déplacer `database.ts`** → `core/database.ts` - - [x] Corriger tous les imports internes des services - - [x] Corriger import dans scripts/reset-database.ts -- [x] **Déplacer `system-info.ts`** → `core/system-info.ts` - - [x] Corriger imports dans actions/system - - [x] Corriger import dynamique de backup -- [x] **Déplacer `user-preferences.ts`** → `core/user-preferences.ts` - - [x] Corriger 13 imports externes (actions, API routes, pages) - - [x] Corriger 3 imports internes entre services - -### Phase 2: Analytics & Métriques ✅ -- [x] **Déplacer `analytics.ts`** → `analytics/analytics.ts` - - [x] Corriger 2 imports externes (actions, components) -- [x] **Déplacer `metrics.ts`** → `analytics/metrics.ts` - - [x] Corriger 7 imports externes (actions, hooks, components) -- [x] **Déplacer `manager-summary.ts`** → `analytics/manager-summary.ts` - - [x] Corriger 3 imports externes (components, pages) - - [x] Corriger imports database vers ../core/database - -### Phase 3: Data Management ✅ -- [x] **Déplacer `backup.ts`** → `data-management/backup.ts` - - [x] Corriger 6 imports externes (clients, components, pages, API) - - [x] Corriger imports relatifs vers ../core/ et ../../lib/ -- [x] **Déplacer `backup-scheduler.ts`** → `data-management/backup-scheduler.ts` - - [x] Corriger import dans script backup-manager.ts - - [x] Corriger imports relatifs entre services - -### Phase 4: Task Management ✅ -- [x] **Déplacer `tasks.ts`** → `task-management/tasks.ts` - - [x] Corriger 7 imports externes (pages, API routes, actions) - - [x] Corriger import dans script seed-data.ts -- [x] **Déplacer `tags.ts`** → `task-management/tags.ts` - - [x] Corriger 8 imports externes (pages, API routes, actions) - - [x] Corriger import dans script seed-tags.ts -- [x] **Déplacer `daily.ts`** → `task-management/daily.ts` - - [x] Corriger 6 imports externes (pages, API routes, actions) - - [x] Corriger imports relatifs vers ../core/database - -### Phase 5: Intégrations ✅ -- [x] **Déplacer `tfs.ts`** → `integrations/tfs.ts` - - [x] Corriger 10 imports externes (actions, API routes, components, types) - - [x] Corriger imports relatifs vers ../core/ -- [x] **Déplacer services Jira** → `integrations/jira/` - - [x] `jira.ts` → `integrations/jira/jira.ts` - - [x] `jira-scheduler.ts` → `integrations/jira/scheduler.ts` - - [x] `jira-analytics.ts` → `integrations/jira/analytics.ts` - - [x] `jira-analytics-cache.ts` → `integrations/jira/analytics-cache.ts` - - [x] `jira-advanced-filters.ts` → `integrations/jira/advanced-filters.ts` - - [x] `jira-anomaly-detection.ts` → `integrations/jira/anomaly-detection.ts` - - [x] Corriger 18 imports externes (actions, API routes, hooks, components) - - [x] Corriger imports relatifs entre services Jira - -## Phase 6: Cleaning -- [x] **Uniformiser les imports absolus** dans tous les services - - [x] Remplacer tous les imports relatifs `../` par `@/services/...` - - [x] Corriger l'import dynamique dans system-info.ts - - [x] 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) diff --git a/TODO_ARCHIVE.md b/TODO_ARCHIVE.md index 7c47c17..be4a42d 100644 --- a/TODO_ARCHIVE.md +++ b/TODO_ARCHIVE.md @@ -368,4 +368,113 @@ src/ - [x] refacto des dates avec le utils qui pour l'instant n'est pas utilisé - [x] split de certains gros composants. - [x] Page jira-dashboard : onglets analytics avancés et Qualité et collaboration : les charts sortent des cards; il faut reprendre la UI pour que ce soit consistant. -- [x] Page Daily : les mots aujourd'hui et hier ne fonctionnent dans les titres que si c'est vraiment aujourd'hui :) \ No newline at end of file +- [x] Page Daily : les mots aujourd'hui et hier ne fonctionnent dans les titres que si c'est vraiment aujourd'hui :) + + +## 🔄 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) ✅ +- [x] **Déplacer `database.ts`** → `core/database.ts` + - [x] Corriger tous les imports internes des services + - [x] Corriger import dans scripts/reset-database.ts +- [x] **Déplacer `system-info.ts`** → `core/system-info.ts` + - [x] Corriger imports dans actions/system + - [x] Corriger import dynamique de backup +- [x] **Déplacer `user-preferences.ts`** → `core/user-preferences.ts` + - [x] Corriger 13 imports externes (actions, API routes, pages) + - [x] Corriger 3 imports internes entre services + +### Phase 2: Analytics & Métriques ✅ +- [x] **Déplacer `analytics.ts`** → `analytics/analytics.ts` + - [x] Corriger 2 imports externes (actions, components) +- [x] **Déplacer `metrics.ts`** → `analytics/metrics.ts` + - [x] Corriger 7 imports externes (actions, hooks, components) +- [x] **Déplacer `manager-summary.ts`** → `analytics/manager-summary.ts` + - [x] Corriger 3 imports externes (components, pages) + - [x] Corriger imports database vers ../core/database + +### Phase 3: Data Management ✅ +- [x] **Déplacer `backup.ts`** → `data-management/backup.ts` + - [x] Corriger 6 imports externes (clients, components, pages, API) + - [x] Corriger imports relatifs vers ../core/ et ../../lib/ +- [x] **Déplacer `backup-scheduler.ts`** → `data-management/backup-scheduler.ts` + - [x] Corriger import dans script backup-manager.ts + - [x] Corriger imports relatifs entre services + +### Phase 4: Task Management ✅ +- [x] **Déplacer `tasks.ts`** → `task-management/tasks.ts` + - [x] Corriger 7 imports externes (pages, API routes, actions) + - [x] Corriger import dans script seed-data.ts +- [x] **Déplacer `tags.ts`** → `task-management/tags.ts` + - [x] Corriger 8 imports externes (pages, API routes, actions) + - [x] Corriger import dans script seed-tags.ts +- [x] **Déplacer `daily.ts`** → `task-management/daily.ts` + - [x] Corriger 6 imports externes (pages, API routes, actions) + - [x] Corriger imports relatifs vers ../core/database + +### Phase 5: Intégrations ✅ +- [x] **Déplacer `tfs.ts`** → `integrations/tfs.ts` + - [x] Corriger 10 imports externes (actions, API routes, components, types) + - [x] Corriger imports relatifs vers ../core/ +- [x] **Déplacer services Jira** → `integrations/jira/` + - [x] `jira.ts` → `integrations/jira/jira.ts` + - [x] `jira-scheduler.ts` → `integrations/jira/scheduler.ts` + - [x] `jira-analytics.ts` → `integrations/jira/analytics.ts` + - [x] `jira-analytics-cache.ts` → `integrations/jira/analytics-cache.ts` + - [x] `jira-advanced-filters.ts` → `integrations/jira/advanced-filters.ts` + - [x] `jira-anomaly-detection.ts` → `integrations/jira/anomaly-detection.ts` + - [x] Corriger 18 imports externes (actions, API routes, hooks, components) + - [x] Corriger imports relatifs entre services Jira + +## Phase 6: Cleaning +- [x] **Uniformiser les imports absolus** dans tous les services + - [x] Remplacer tous les imports relatifs `../` par `@/services/...` + - [x] Corriger l'import dynamique dans system-info.ts + - [x] 12 imports relatifs → imports absolus cohérents + +### 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 + +``` + + +### 🔄 Intégration TFS/Azure DevOps +- [x] **Lecture des Pull Requests TFS** : Synchronisation des PR comme tâches + - [x] PR arrivent en backlog avec filtrage par team project + - [x] Synchronisation aussi riche que Jira (statuts, assignés, commentaires) + - [x] Filtrage par team project, repository, auteur +- [x] **Architecture plug-and-play pour intégrations** + - [x] Refactoriser pour interfaces génériques d'intégration + - [x] Interface `IntegrationService` commune (Jira, TFS, GitHub, etc.) + - [x] UI générique de configuration des intégrations + - [x] Système de plugins pour ajouter facilement de nouveaux services + +### 📋 Daily - Gestion des tâches non cochées +- [x] **Section des tâches en attente** + - [x] Liste de toutes les todos non cochées (historique complet) + - [x] Filtrage par date (7/14/30 jours), catégorie (tâches/réunions), ancienneté + - [x] Action "Archiver" pour les tâches ni résolues ni à faire + - [x] Section repliable dans la page Daily (sous les sections Hier/Aujourd'hui) + - [x] **Bouton "Déplacer à aujourd'hui"** pour les tâches non résolues + - [x] Indicateurs visuels d'ancienneté (couleurs vert→rouge) + - [x] Actions par tâche : Cocher, Archiver, Supprimer +- [x] **Statut "Archivé" basique** + - [x] Marquage textuel [ARCHIVÉ] dans le texte de la tâche + - [x] 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) \ No newline at end of file