236 lines
11 KiB
Markdown
236 lines
11 KiB
Markdown
# TowerControl v2.0 - Gestionnaire de tâches moderne
|
|
|
|
## Autre Todos
|
|
- [x] 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
|
|
- [x] **Lecture des Pull Requests TFS** : Synchronisation des PR comme tâches <!-- Implémenté le 22/09/2025 -->
|
|
- [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** <!-- Implémenté le 22/09/2025 -->
|
|
- [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** <!-- Implémenté le 21/09/2025 -->
|
|
- [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 <!-- Implémenté le 22/09/2025 avec server action -->
|
|
- [x] Indicateurs visuels d'ancienneté (couleurs vert→rouge)
|
|
- [x] Actions par tâche : Cocher, Archiver, Supprimer
|
|
- [x] **Statut "Archivé" basique** <!-- Implémenté le 21/09/2025 -->
|
|
- [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
|
|
- [ ] 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) ✅
|
|
- [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)
|
|
|
|
#### **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.*
|