diff --git a/TODO.md b/TODO.md index 178d9d7..cbc107f 100644 --- a/TODO.md +++ b/TODO.md @@ -498,6 +498,96 @@ src/ └── 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** +```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.*