Files
towercontrol/TODO.md
Julien Froidefond a0e2a78372 feat: update Daily and Jira dashboard pages with dynamic titles and improved UI
- Implemented `getTodayTitle` and `getYesterdayTitle` functions in `DailyPageClient` to dynamically set section titles based on the current date.
- Updated `TODO.md` to mark completed tasks related to the Jira dashboard UI consistency.
- Enhanced card content in `JiraDashboardPageClient` to ensure charts are responsive and maintain consistent styling.
- Removed unused date formatting function in `DailySection` for cleaner code.
2025-09-21 10:49:39 +02:00

9.8 KiB

TowerControl v2.0 - Gestionnaire de tâches moderne

Autre Todos #2

  • Synchro Jira auto en background timé comme pour la synchro de sauvegarde
  • refacto des allpreferences : ca devrait eter un contexte dans le layout qui balance serverside dans le hook
  • backups : ne backuper que si il y a eu un changement entre le dernier backup et la base actuelle
  • refacto des dates avec le utils qui pour l'instant n'est pas utilisé
  • split de certains gros composants.
  • 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.
  • 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

  • Phase 1: Migration des dossiers

    • mv components/ src/components/
    • mv lib/ src/lib/
    • mv hooks/ src/hooks/
    • mv clients/ src/clients/
    • mv services/ src/services/
  • Phase 2: Mise à jour tsconfig.json

    "paths": {
      "@/*": ["./src/*"]
      // Supprimer les alias spécifiques devenus inutiles
    }
    
  • Phase 3: Correction des imports

    • Tous les imports @/services/*@/services/* (déjà OK)
    • Tous les imports @/lib/*@/lib/* (déjà OK)
    • Tous les imports @/components/*@/components/* (déjà OK)
    • Tous les imports @/clients/*@/clients/* (déjà OK)
    • Tous les imports @/hooks/*@/hooks/* (déjà OK)
    • Vérifier les imports relatifs dans les scripts/
  • Phase 4: Mise à jour des règles Cursor

    • Règle "services" : Mettre à jour les exemples avec src/services/
    • Règle "components" : Mettre à jour avec src/components/
    • Règle "clients" : Mettre à jour avec src/clients/
    • Vérifier tous les liens MDC dans les règles
  • Phase 5: Tests et validation

    • npm run build - Vérifier que le build passe
    • npm run dev - Vérifier que le dev fonctionne
    • npm run lint - Vérifier ESLint
    • npx tsc --noEmit - Vérifier TypeScript
    • 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

// 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.