Files
towercontrol/TODO.md
Julien Froidefond 58353a0dec 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.
2025-09-27 07:17:10 +02:00

6.7 KiB

TowerControl v2.0 - Gestionnaire de tâches moderne

Autre Todos

  • 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

🎯 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

👥 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 + système de rôles

Plan de migration

  • Phase 1: Authentification

    • Système de login/mot de passe (NextAuth.js)
    • 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 + Rôles

    • Modèle User complet
      • Table users (id, email, password, name, role, createdAt, updatedAt)
      • Enum UserRole : ADMIN, MANAGER, USER
      • Champs optionnels : avatar, timezone, language
    • Relations hiérarchiques
      • Table user_teams pour les relations manager → users
      • Champ managerId dans users (optionnel, référence vers un manager)
      • Support des équipes multiples par utilisateur
    • Migration des données existantes
      • Créer un utilisateur admin par défaut avec toutes les données actuelles
      • Ajouter userId à toutes les tables (tasks, daily, tags, preferences, etc.)
      • Contraintes de base de données pour l'isolation
      • Index sur userId pour les performances
  • Phase 3: Système de rôles et permissions

    • Rôle ADMIN
      • Gestion complète des utilisateurs (CRUD)
      • Assignation/modification des rôles
      • Accès à toutes les données système (analytics globales)
      • Configuration système (intégrations Jira/TFS globales)
      • Gestion des équipes et hiérarchies
    • Rôle MANAGER
      • Vue sur les tâches/daily de ses équipiers
      • Assignation de tâches à ses équipiers
      • Analytics d'équipe (métriques, deadlines, performance)
      • Création de tâches pour son équipe
      • Accès aux rapports de son équipe
    • Rôle USER
      • Accès uniquement à ses propres données
      • Réception de tâches assignées par son manager
      • Gestion de son daily/kanban personnel
    • Middleware de permissions
      • Validation des droits d'accès par route
      • Helper functions canAccess(), canManage(), isAdmin()
      • Protection automatique des API routes
  • Phase 4: Services et API avec rôles

    • Services utilisateurs
      • user-management.ts : CRUD utilisateurs (admin only)
      • team-management.ts : Gestion des équipes (admin/manager)
      • role-permissions.ts : Logique des permissions
    • Modification des services existants
      • Tous les services filtrent par userId OU permissions manager
      • Middleware d'injection automatique du userId + userRole
      • Services analytics étendus pour les managers
      • Validation que chaque utilisateur ne voit que ses données autorisées
  • Phase 5: UI et UX multi-rôles

    • Interface Admin
      • Page de gestion des utilisateurs (/admin/users)
      • Création/modification/suppression d'utilisateurs
      • Assignation des rôles et équipes
      • Dashboard admin avec métriques globales
    • Interface Manager
      • Vue équipe avec tâches de tous les équipiers
      • Assignation de tâches à l'équipe
      • Dashboard manager avec analytics d'équipe
      • Gestion des deadlines et priorités d'équipe
    • Interface commune
      • Header avec profil utilisateur, rôle et déconnexion
      • Onboarding différencié par rôle
      • Navigation adaptée aux permissions
      • Indicateurs visuels du rôle actuel
  • Phase 6: Fonctionnalités collaboratives

    • Assignation de tâches
      • Managers peuvent créer et assigner des tâches
      • Notifications de nouvelles tâches assignées
      • Suivi du statut des tâches assignées
    • Partage et visibilité
      • Tâches partagées entre équipiers
      • Commentaires et collaboration sur les tâches
      • Historique des modifications par utilisateur

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.