- Updated `TODO.md` to reflect new testing tasks and final structure expectations. - Simplified TypeScript path mappings in `tsconfig.json` for better clarity. - Revised business logic separation rules in `.cursor/rules` to align with new directory structure. - Deleted unused client components and services to streamline the codebase. - Adjusted import paths in scripts to match the new structure.
9.8 KiB
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 manager : 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
IntegrationServicecommune (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
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
📁 Refactoring structure des dossiers (PRIORITÉ HAUTE)
Problème actuel
- Structure mixte :
src/app/,src/actions/,src/contexts/maiscomponents/,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/
- Tous les imports
-
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
- Règle "services" : Mettre à jour les exemples avec
-
Phase 5: Tests et validation
npm run build- Vérifier que le build passenpm run dev- Vérifier que le dev fonctionnenpm run lint- Vérifier ESLintnpx 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
userIdpour les performances
- Ajouter
-
Phase 3: Services et API
- Modifier tous les services pour filtrer par
userId - Middleware d'injection automatique du
userIddans les requêtes - Validation que chaque utilisateur ne voit que ses données
- API d'administration (optionnel)
- Modifier tous les services pour filtrer par
-
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
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
📱 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
- Vue liste simple : Remplacement du Kanban
-
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.