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