- 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.
6.7 KiB
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
IntegrationProviderstandardisée - Configuration dynamique des intégrations
- Gestion des credentials par intégration
- Interface
- Modèles de données étendus
PullRequestpour TFS/GitHubPendingRequestpour les demandes JiraArchivedTaskpour 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
- Table
- Relations hiérarchiques
- Table
user_teamspour les relations manager → users - Champ
managerIddans users (optionnel, référence vers un manager) - Support des équipes multiples par utilisateur
- Table
- 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
userIdpour les performances
- Modèle User complet
-
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
- Rôle ADMIN
-
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
userIdOU 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
- Tous les services filtrent par
- Services utilisateurs
-
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
- Interface Admin
-
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
- Assignation de tâches
Considérations techniques
- Base de données : Ajouter
userIdpartout + 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.