240 lines
9.8 KiB
Markdown
240 lines
9.8 KiB
Markdown
# TowerControl v2.0 - Gestionnaire de tâches moderne
|
|
|
|
## Autre Todos #2
|
|
- [x] Synchro Jira auto en background timé comme pour la synchro de sauvegarde
|
|
- [ ] refacto des getallpreferences en frontend : ca devrait eter un contexte dans le layout qui balance serverside dans le hook
|
|
- [x] backups : ne backuper que si il y a eu un changement entre le dernier backup et la base actuelle
|
|
- [x] refacto des dates avec le utils qui pour l'instant n'est pas utilisé
|
|
- [ ] 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 :)
|
|
|
|
## 🔧 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
|
|
- [ ] **Page des tâches en attente**
|
|
- [ ] Liste de toutes les todos non cochées (historique complet)
|
|
- [ ] Filtrage par date, catégorie, ancienneté
|
|
- [ ] Action "Archiver" pour les tâches ni résolues ni à faire
|
|
- [ ] **Nouveau statut "Archivé"**
|
|
- [ ] État intermédiaire entre "à faire" et "terminé"
|
|
- [ ] Interface pour voir/gérer les tâches archivées
|
|
- [ ] Possibilité de désarchiver une tâche
|
|
|
|
### 🎯 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 structure des dossiers (PRIORITÉ HAUTE)
|
|
|
|
#### **Problème actuel**
|
|
- Structure mixte : `src/app/`, `src/actions/`, `src/contexts/` mais `components/`, `lib/`, `services/`, etc. à la racine
|
|
- Alias TypeScript incohérents dans `tsconfig.json`
|
|
- Non-conformité avec les bonnes pratiques Next.js 13+ App Router
|
|
|
|
#### **Plan de migration**
|
|
- [x] **Phase 1: Migration des dossiers**
|
|
- [x] `mv components/ src/components/`
|
|
- [x] `mv lib/ src/lib/`
|
|
- [x] `mv hooks/ src/hooks/`
|
|
- [x] `mv clients/ src/clients/`
|
|
- [x] `mv services/ src/services/`
|
|
|
|
- [x] **Phase 2: Mise à jour tsconfig.json**
|
|
```json
|
|
"paths": {
|
|
"@/*": ["./src/*"]
|
|
// Supprimer les alias spécifiques devenus inutiles
|
|
}
|
|
```
|
|
|
|
- [x] **Phase 3: Correction des imports**
|
|
- [x] Tous les imports `@/services/*` → `@/services/*` (déjà OK)
|
|
- [x] Tous les imports `@/lib/*` → `@/lib/*` (déjà OK)
|
|
- [x] Tous les imports `@/components/*` → `@/components/*` (déjà OK)
|
|
- [x] Tous les imports `@/clients/*` → `@/clients/*` (déjà OK)
|
|
- [x] Tous les imports `@/hooks/*` → `@/hooks/*` (déjà OK)
|
|
- [x] Vérifier les imports relatifs dans les scripts/
|
|
|
|
- [x] **Phase 4: Mise à jour des règles Cursor**
|
|
- [x] Règle "services" : Mettre à jour les exemples avec `src/services/`
|
|
- [x] Règle "components" : Mettre à jour avec `src/components/`
|
|
- [x] Règle "clients" : Mettre à jour avec `src/clients/`
|
|
- [x] Vérifier tous les liens MDC dans les règles
|
|
|
|
- [x] **Phase 5: Tests et validation**
|
|
- [x] `npm run build` - Vérifier que le build passe
|
|
- [x] `npm run dev` - Vérifier que le dev fonctionne
|
|
- [x] `npm run lint` - Vérifier ESLint
|
|
- [x] `npx tsc --noEmit` - Vérifier TypeScript
|
|
- [x] Tester les fonctionnalités principales
|
|
|
|
#### **Structure finale attendue**
|
|
```
|
|
src/
|
|
├── app/ # Pages Next.js (déjà OK)
|
|
├── actions/ # Server Actions (déjà OK)
|
|
├── contexts/ # React Contexts (déjà OK)
|
|
├── components/ # Composants React (à déplacer)
|
|
├── lib/ # Utilitaires et types (à déplacer)
|
|
├── hooks/ # Hooks React (à déplacer)
|
|
├── clients/ # Clients HTTP (à déplacer)
|
|
└── services/ # Services backend (à déplacer)
|
|
```
|
|
|
|
### 👥 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
|
|
|
|
### 📱 Interface mobile adaptée (PROJET MAJEUR)
|
|
|
|
#### **Problème actuel**
|
|
- Kanban non adapté aux écrans tactiles petits
|
|
- Drag & drop difficile sur mobile
|
|
- Interface desktop-first
|
|
|
|
#### **Solution : Interface mobile dédiée**
|
|
- [ ] **Phase 1: Détection et responsive**
|
|
- [ ] Détection mobile/desktop (useMediaQuery)
|
|
- [ ] Composant de switch automatique d'interface
|
|
- [ ] Breakpoints adaptés pour tablettes
|
|
|
|
- [ ] **Phase 2: Interface mobile pour les tâches**
|
|
- [ ] **Vue liste simple** : Remplacement du Kanban
|
|
- [ ] Liste verticale avec statuts en badges
|
|
- [ ] Actions par swipe (marquer terminé, changer statut)
|
|
- [ ] Filtres simplifiés (dropdown au lieu de sidebar)
|
|
- [ ] **Actions tactiles**
|
|
- [ ] Tap pour voir détails
|
|
- [ ] Long press pour menu contextuel
|
|
- [ ] Swipe left/right pour actions rapides
|
|
- [ ] **Navigation mobile**
|
|
- [ ] Bottom navigation bar
|
|
- [ ] Sections : Tâches, Daily, Jira, Profil
|
|
|
|
- [ ] **Phase 3: Daily mobile optimisé**
|
|
- [ ] Checkboxes plus grandes (touch-friendly)
|
|
- [ ] Ajout rapide par bouton flottant
|
|
- [ ] Calendrier mobile avec navigation par swipe
|
|
|
|
- [ ] **Phase 4: Jira mobile**
|
|
- [ ] Métriques simplifiées (cartes au lieu de graphiques complexes)
|
|
- [ ] Filtres en modal/drawer
|
|
- [ ] Synchronisation en background
|
|
|
|
#### **Composants mobiles spécifiques**
|
|
```typescript
|
|
// Exemples de composants à créer
|
|
- MobileTaskList.tsx // Remplace le Kanban
|
|
- MobileTaskCard.tsx // Version tactile des cartes
|
|
- MobileNavigation.tsx // Bottom nav
|
|
- SwipeActions.tsx // Actions par swipe
|
|
- MobileDailyView.tsx // Daily optimisé mobile
|
|
- MobileFilters.tsx // Filtres en modal
|
|
```
|
|
|
|
#### **Considérations UX mobile**
|
|
- **Simplicité** : Moins d'options visibles, plus de navigation
|
|
- **Tactile** : Boutons plus grands, zones de touch optimisées
|
|
- **Performance** : Lazy loading, virtualisation pour longues listes
|
|
- **Offline** : Cache local pour usage sans réseau (PWA)
|
|
|
|
---
|
|
|
|
*Focus sur l'expérience utilisateur et le design moderne. App standalone prête pour évoluer vers une plateforme d'intégration complète.*
|