Files
towercontrol/TODO.md
Julien Froidefond 3cfed60f43 feat: refactor daily task management with new pending tasks section
- Added `PendingTasksSection` to `DailyPageClient` for displaying uncompleted tasks.
- Implemented `getPendingCheckboxes` method in `DailyClient` and `DailyService` to fetch pending tasks.
- Introduced `getDaysAgo` utility function for calculating elapsed days since a date.
- Updated `TODO.md` to reflect the new task management features and adjustments.
- Cleaned up and organized folder structure to align with Next.js 13+ best practices.
2025-09-21 19:55:04 +02:00

7.0 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

🔄 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

### 👥 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** : Kanban simple OK, mais swimlane KO. Ajouter une autre interface plus simple pour mobile en plus du Kanban Simple
    - [ ] 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.