Keep/_bmad-output/planning-artifacts/COMPLETE-CLEANUP-ANALYSIS.md
sepehr ddb67ba9e5 fix: unify theme system - fix theme switching persistence
- Unified localStorage key to 'theme-preference' across all components
- Fixed header.tsx using wrong localStorage key ('theme' instead of 'theme-preference')
- Added localStorage hybrid persistence for instant theme changes
- Removed router.refresh() which was causing stale data revert
- Replaced Blue theme with Sepia
- Consolidated auth() calls to prevent race conditions
- Updated UserSettingsData types to include all themes
2026-01-18 22:33:41 +01:00

18 KiB

🚀 NETTOYAGE COMPLET PROJET KEEP - ANALYSE & PLAN D'ACTION

Date: 2026-01-17
Responsable: John - Product Manager
Client: Ramez
Objectif: Nettoyage complet, refonte design, tests Playwright, nouvelles idées


📋 RÉSUMÉ EXÉCUTIF

Situation actuelle :

  • Projet Keep (Next.js 16.1.1, Tailwind CSS 4, Playwright configuré)
  • 12 Épics déjà définis avec 78 User Stories
  • Design audit et Design system déjà créés
  • PROBLÈME : "Un peu le foutoir" - besoin de nettoyage complet
  • Design incohérent entre desktop, mobile, admin et profil

Vos 6 objectifs :

  1. 🎨 Revoir le design (référence : code.html - notebook voyage desktop)
  2. 🏛️ Revoir le design des pages admin et profil
  3. 📱 Revoir le design mobile (référence : code_mobile.html)
  4. 🔔 Tester toutes les popups et modales
  5. ⚠️ Utiliser Playwright pour TOUS les tests - NE JAMAIS ABANDONNER si échec
  6. 🔍 Faire des recherches sur le net pour proposer de nouvelles idées

🎯 ÉPICS & USER STORIES ACTUELS

ÉPIQUE 1 : AI-Powered Title Suggestions (10 stories)

  • Title suggestions when writing notes without titles
  • Multiple title options, apply, defer, dismiss
  • Feedback collection
  • Settings toggle

ÉPIQUE 2 : Hybrid Semantic Search (6 stories)

  • Keyword + natural language queries
  • Visual indicators for match types
  • Unified search interface

ÉPIQUE 3 : Memory Echo - Proactive Connections (8 stories)

  • Background analysis of note embeddings
  • Proactive notifications (1 insight/day)
  • Link notes, dismiss, feedback

ÉPIQUE 4 : Paragraph-Level AI Reformulation (8 stories)

  • AI-powered paragraph rewriting
  • Clarify, shorten, improve style options
  • Apply, cancel, feedback

ÉPIQUE 5 : AI Settings & Privacy Control (11 stories)

  • Granular feature toggles
  • Provider selection (Ollama/OpenAI)
  • API key management
  • Auto-fallback

ÉPIQUE 6 : Language Detection & Multilingual Support (2 stories)

  • Automatic language detection (TinyLD + AI)
  • Multilingual AI processing

ÉPIQUE 7 : Admin Dashboard & Analytics (9 stories)

  • Real-time usage metrics
  • Rate limiting per user
  • Cost tracking
  • Model parameter adjustment

ÉPIQUE 8 : Accessibility & Responsive Design (8 stories)

  • WCAG 2.1 Level AA compliance
  • Keyboard navigation
  • Screen reader support
  • Mobile/tablet/desktop responsive

ÉPIQUE 9 : Simplify NoteCard Interface (5 stories)

  • Reduce 5 buttons to 1 menu button
  • Preserve all content (avatar, images, labels, dates)
  • Mobile optimization

ÉPIQUE 10 : Design System Standardization (4 stories)

  • Spacing scale (4px base unit)
  • Color palette standardization
  • Typography hierarchy
  • Border radius & shadows

ÉPIQUE 11 : Settings Interface Redesign (4 stories)

  • Clear sections organization
  • Search & filter functionality
  • Improved descriptions
  • Mobile optimization

ÉPIQUE 12 : Mobile Experience Optimization (4 stories)

  • Simplified note cards for mobile
  • Mobile-first layout
  • Touch interactions
  • Performance optimization

TOTAL : 12 ÉPICS | 78 USER STORIES


📊 AUDIT DES POPUPS & MODALES

Liste complète des composants de dialogue (13 fichiers) :

  1. auto-label-suggestion-dialog.tsx - Suggestions d'étiquettes AI
  2. batch-organization-dialog.tsx - Organisation en lot des notes
  3. notebook-summary-dialog.tsx - Résumé du notebook
  4. delete-notebook-dialog.tsx - Suppression de notebook
  5. edit-notebook-dialog.tsx - Édition de notebook
  6. create-notebook-dialog.tsx - Création de notebook
  7. label-management-dialog.tsx - Gestion des étiquettes
  8. collaborator-dialog.tsx - Gestion des collaborateurs
  9. reminder-dialog.tsx - Rappels de notes
  10. fusion-modal.tsx - Fusion de notes
  11. comparison-modal.tsx - Comparaison de notes
  12. ui/dialog.tsx - Composant Dialog de base
  13. ui/popover.tsx - Composant Popover de base

Scénarios de test Playwright à créer :

Tests de base (toutes modales)

  • Ouverture de la modal
  • Fermeture avec bouton "Annuler"
  • Fermeture avec touche ESC
  • Fermeture en cliquant en dehors
  • Sauvegarde des données
  • Annulation des modifications
  • Validation des formulaires

Tests spécifiques par modal

Auto-Label Suggestion Dialog :

  • Affichage des suggestions AI
  • Application d'une suggestion
  • Refus des suggestions
  • Performance d'affichage (< 2s)

Batch Organization Dialog :

  • Sélection multiple de notes
  • Déplacement vers un notebook
  • Application de labels en lot
  • Annulation des changements

Notebook Actions (CRUD Dialogs) :

  • Création de notebook avec nom
  • Édition de notebook existant
  • Suppression avec confirmation
  • Validation du nom (non vide, unique)

Label Management Dialog :

  • Création de nouvelle étiquette
  • Renommage d'étiquette existante
  • Suppression d'étiquette
  • Color picker fonctionnel

Collaborator Dialog :

  • Ajout de collaborateur par email
  • Liste des collaborateurs
  • Suppression de collaborateur
  • Permissions (lecture/écriture)

Reminder Dialog :

  • Création de rappel
  • Sélection de date/heure
  • Édition de rappel existant
  • Suppression de rappel

Fusion Modal :

  • Sélection de notes à fusionner
  • Aperçu de fusion
  • Confirmation de fusion
  • Annulation

Comparison Modal :

  • Affichage côte à côte
  • Différences visuelles
  • Navigation entre versions
  • Fusion selective

Tests d'accessibilité (toutes modales)

  • Navigation au clavier (Tab, Entrée, ESC)
  • Indicateurs de focus visibles (3:1 contrast)
  • Support lecteur d'écran (ARIA labels)
  • Touch targets minimum 44x44px (mobile)
  • Focus trap dans la modal
  • Focus restoration après fermeture

Tests responsive (toutes modales)

  • Affichage correct sur mobile (< 768px)
  • Affichage correct sur tablette (768px - 1024px)
  • Affichage correct sur desktop (>= 1024px)
  • Aucun overflow horizontal
  • Aucun overflow vertical
  • Taille des boutons adaptée (44x44px mobile)

🎨 ANALYSE DES RÉFÉRENCES DESIGN

FICHIER 1 : stitch_notebook_view_voyage/code.html (Desktop)

Points forts :

  • Design moderne avec cartes masonry
  • Grille responsive (1-3 colonnes selon l'écran)
  • Sidebar avec notebooks et labels contextuels
  • Cartes avec images (hero cards)
  • Badges de labels colorés
  • Actions au survol (hover)
  • Filtres horizontaux (chips)
  • Section AI Suggestions

Caractéristiques design :

  • Couleurs : Primary #356ac0 (bleu), Backgrounds #f7f7f8 (light), #1a1d23 (dark)
  • Police : Spline Sans (300-700)
  • Border radius : 0.5rem (8px) cards, 0.25rem (4px) éléments
  • Spacing : Base 4px (Tailwind)
  • Ombres : shadow-smshadow-xl au survol
  • Animations : duration-300 hover, transition smooth

Patterns UX :

  • Cartes avec images en top (60% hauteur)
  • Contenu avec icones + texte structuré
  • Tags avec badges colorés
  • Action menu "..." en haut à droite
  • Avatar en bas à gauche (bottom-2 left-2)

FICHIER 2 : stitch_home_general_notes/code_mobile.html (Mobile)

Points forts :

  • Layout mobile-first (max-width: 768px)
  • Navigation drawer (sidebar coulissante)
  • Filtres horizontaux scrollables (hide-scrollbar)
  • Cartes masonry simplifiées
  • Floating Action Button (FAB) en bas à droite
  • Bottom Tab Navigation
  • Notifications AI contextuelles
  • Touch-friendly (44x44px targets)

Caractéristiques design :

  • Couleurs : Primary #249da8 (turquoise), Background #fafafa (light), #16181d (dark)
  • Police : Manrope (400-800)
  • Border radius : 0.25rem (4px) cards, 0.75rem (12px) boutons
  • Spacing : Base 4px (Tailwind)
  • Ombres : shadow-[0_2px_8px_rgba(0,0,0,0.04)]
  • Animations : duration-200 transitions

Patterns UX mobile :

  • Drawer navigation (85% largeur)
  • Safe area support (env(safe-area-inset-bottom))
  • Pull-to-refresh (simulé)
  • Swipe gestures (à implémenter)
  • Long-press actions
  • Bottom sheet pour actions

🔍 RÉSULTATS DES RECHERCHES WEB 2026

1. Modern Notebook App Design Patterns

Tendances identifiées :

  • Masonry Grid : Layout asymétrique pour variété visuelle
  • Hero Cards : Grandes cartes avec images pour les notes importantes
  • Contextual Labels : Filtres adaptés au contexte (ex: #Voyage → #Hôtels, #Vols)
  • AI Smart Context : Suggestions contextuelles proactives
  • Dark Mode par défaut : Support multi-thèmes (light, dark, midnight, sepia)
  • Micro-animations : Transitions subtiles (150-300ms)
  • Gesture-based : Swipe, drag & drop pour organisation

Meilleures pratiques :

  • Touch targets 44x44px minimum (WCAG 2.1 AA)
  • Focus visibles 3:1 contrast
  • Performance < 100ms pour interactions
  • Skeleton screens pour chargement
  • Lazy loading des images

2. Admin Dashboard Design Best Practices

Tendances 2026 :

  • Data Visualization : Graphiques interactifs (Chart.js, D3)
  • Real-time Metrics : Mises à jour en temps réel via WebSocket
  • User Management : Table avec recherche, filtres, actions en lot
  • Audit Logs : Timeline des actions avec détails
  • Cost Tracking : Estimation des coûts AI par utilisateur
  • Rate Limiting : Sliders pour configurer les limites

Patterns UX :

  • Sidebar navigation avec icônes
  • Breadcrumbs pour navigation
  • Quick Actions en haut à droite
  • Empty states illustrés
  • Loading states avec skeleton
  • Toast notifications pour feedback

3. Mobile-First UX Patterns

Tendances mobile :

  • Bottom Navigation : 4-5 icônes en bas (FAB central)
  • Navigation Drawer : Sidebar coulissante (85% largeur)
  • Horizontal Scroll : Filtres scrollables (hide-scrollbar)
  • Pull-to-Refresh : Rafraîchir avec geste tirer
  • Swipe Gestures : Swipe left → delete, right → archive
  • Long-Press : Menu contextuel sur appui long
  • Floating Action Button : Bouton d'action principal en bas à droite

Accessibilité mobile :

  • Min-height 44px pour touch targets
  • Espace 8px entre targets adjacents
  • Safe area support (notch, home indicator)
  • Haptic feedback pour confirmations
  • Keyboard avoidance (clavier ne cache pas l'input)

🏛️ PAGES ADMIN & PROFIL - ÉTAT ACTUEL

Identification des fichiers :

Admin :

  • keep-notes/app/(main)/admin/ - Page admin principale
  • admin-page-header.tsx - En-tête admin
  • create-user-dialog.tsx - Création d'utilisateur

Profil :

  • profile-page-header.tsx - En-tête profil
  • keep-notes/app/(main)/profile/ - Page profil

À faire :

  • Examiner le design actuel de ces pages
  • Identifier les incohérences avec le reste de l'appli
  • Proposer une refonte basée sur les patterns modernes

📱 ANALYSE MOBILE - ÉTAT ACTUEL

Fichiers mobile identifiés :

  • notebook-actions.tsx - Actions notebooks mobile
  • header.tsx - Header responsive
  • note-card.tsx - Carte notes responsive
  • sidebar.tsx - Sidebar desktop (mobile = hidden)

Problèmes identifiés :

  • Masonry grid pas optimal sur mobile
  • Note cards trop complexes pour petits écrans
  • Touch targets parfois < 44x44px
  • Pas de navigation drawer implémentée
  • Pas de FAB (Floating Action Button)
  • Pas de swipe gestures

🚀 PLAN D'ACTION - PHASE PAR PHASE

PHASE 1 : AUDIT COMPLET (Jour 1)

Objectif : Comprendre l'état actuel du projet

Tâches :

  1. Analyse des fichiers HTML de référence
  2. Recherche web sur les tendances 2026
  3. Inventaire des popups/modales (13 fichiers)
  4. Identification des pages admin/profil
  5. Identification des composants mobile
  6. Examiner le code actuel des pages admin/profil
  7. Tester l'application (si possible)

Livrable : Ce document d'analyse complète


PHASE 2 : RECOMMANDATIONS DESIGN (Jour 1-2)

Objectif : Proposer un design moderne et cohérent

Tâches :

  1. Créer wireframes pour :
    • Page notebook (desktop)
    • Page notebook (mobile)
    • Page admin
    • Page profil
  2. Définir la palette de couleurs unifiée
  3. Standardiser la typographie
  4. Créer les composants UI réutilisables
  5. Documenter le Design System

Livrables :

  • Wireframes (Figma/Sketch ou description détaillée)
  • Design System document
  • Composants UI standards

PHASE 3 : ÉCRITURE DU PRD (Jour 2-3)

Objectif : Créer un Product Requirements Document complet

Tâches :

  1. Définir les fonctionnalités du Design System
  2. Définir les fonctionnalités Admin/Profil
  3. Définir les fonctionnalités Mobile
  4. Définir les tests Playwright
  5. Créer les User Stories manquantes
  6. Prioriser les fonctionnalités

Livrable : PRD complet avec :

  • Fonctionnalités détaillées
  • User Stories priorisées
  • Critères de succès
  • Contraintes techniques

PHASE 4 : ORGANISATION DES ÉPICS & USER STORIES (Jour 3-4)

Objectif : Nettoyer et réorganiser le backlog

Tâches :

  1. Revoir les 12 épics actuels
  2. Archiver les épics/user stories obsolètes
  3. Créer de nouveaux épics pour :
    • Epic 13 : Desktop Design Refactor
    • Epic 14 : Admin & Profil Redesign
    • Epic 15 : Mobile UX Overhaul
    • Epic 16 : Playwright Test Suite
    • Epic 17 : Innovation Features (nouvelles idées)
  4. Réorganiser les user stories
  5. Créer une matrice de priorité (MoSCoW)

Livrable : Backlog priorisé avec :

  • 17 épics (12 existants + 5 nouveaux)
  • ~100 user stories
  • Priorités claires (Must/Should/Could)
  • Dépendances identifiées

PHASE 5 : TESTS PLAYWRIGHT - MISE EN PLACE (Jour 4-5)

Objectif : Créer une suite de tests Playwright complète

Tâches :

  1. Créer des tests pour les 13 modales
  2. Créer des tests pour les workflows critiques :
    • Création de note
    • Édition de note
    • Suppression de note
    • Création de notebook
    • Déplacement de note
  3. Définir la procédure en cas d'échec :
    • Ne JAMAIS abandonner
    • Demander une action utilisateur pour débloquer
    • Documenter le blocage
    • Proposer une solution
  4. Intégrer les tests dans le CI/CD

Livrables :

  • Suite de tests Playwright (~50 tests)
  • Guide de procédure en cas d'échec
  • Scripts CI/CD

PHASE 6 : BENCHMARK & INSPIRATION (Jour 5-6)

Objectif : Identifier de nouvelles idées de fonctionnalités

Tâches :

  1. Benchmark des applications similaires :
    • Notion
    • Obsidian
    • Evernote
    • OneNote
    • Bear
  2. Identifier les fonctionnalités innovantes
  3. Proposer 5-10 nouvelles idées
  4. Créer des wireframes pour les idées retenues
  5. Prioriser les idées

Livrables :

  • Rapport de benchmark
  • 5-10 nouvelles idées de fonctionnalités
  • Wireframes des idées prioritaires

PHASE 7 : IMPLÉMENTATION (Jour 7+)

Objectif : Implémenter les changements prioritaires

Ordre recommandé :

  1. Design System (Epic 10)
  2. Desktop Design Refactor (Epic 13)
  3. Admin & Profil Redesign (Epic 14)
  4. Mobile UX Overhaul (Epic 15)
  5. Playwright Test Suite (Epic 16)
  6. Innovation Features (Epic 17)

📊 ESTIMATION

Phase Durée Priorité
Phase 1 : Audit complet 1 jour CRITIQUE
Phase 2 : Recommandations design 1-2 jours HAUTE
Phase 3 : Écriture du PRD 2-3 jours HAUTE
Phase 4 : Organisation épics/US 1-2 jours HAUTE
Phase 5 : Tests Playwright 1-2 jours CRITIQUE
Phase 6 : Benchmark & Inspiration 1-2 jours MOYENNE
Phase 7 : Implémentation 14+ jours HAUTE

Total estimé : 21-24 jours pour les phases 1-6 (avant implémentation)


PROCHAINES ÉTAPES IMMÉDIATES

Pour RAMEZ :

Ce que je peux faire MAINTENANT :

  1. Option A : Continuer avec Phase 2 (Recommandations Design)

    • Créer des wireframes détaillés
    • Proposer un Design System unifié
    • Dessiner les pages admin/profil
  2. Option B : Continuer avec Phase 3 (Écriture du PRD)

    • Utiliser les résultats de Phase 1
    • Créer un PRD complet
    • Inclure les tests Playwright
  3. Option C : Commencer immédiatement Phase 4 (Organisation Épics)

    • Archiver les épics obsolètes
    • Créer les 5 nouveaux épics
    • Prioriser tout le backlog

QUELLE OPTION PRÉFÉREZ-VOUS ?

Dites-moi simplement "A", "B" ou "C" et je commence immédiatement ! 🚀


📝 NOTES IMPORTANTES

RÈGLE D'OR POUR PLAYWRIGHT (C'est TRES TRES IMPORTANT T)

QUAND UN TEST ÉCHOUE :

1. NE JAMAIS ABANDONNER
2. Identifier précisément le blocage
3. Demander à l'utilisateur (Ramez) de faire une action :
   - "Pouvez-vous vérifier que l'application est démarrée ?"
   - "Pouvez-vous ouvrir la page X ?"
   - "Pouvez-vous vérifier les permissions navigateur ?"
4. Attendre la réponse de l'utilisateur
5. Réessayer le test
6. Si ça échoue encore, analyser pourquoi
7. Proposer une solution technique
8. Attendre validation de l'utilisateur
9. Réessayer

RÉPÉTER JUSQU'À CE QUE LE TEST RÉUSSISSE

ARCHITECTURE ACTUELLE DU PROJET

keep-notes/
├── app/
│   ├── (auth)/
│   │   ├── login/
│   │   └── register/
│   ├── (main)/
│   │   ├── admin/
│   │   ├── profile/
│   │   └── settings/
│   └── layout.tsx
├── components/
│   ├── ai/
│   ├── settings/
│   ├── ui/
│   ├── note-card.tsx
│   ├── notebook-*.tsx
│   └── *-dialog.tsx (13 modales)
├── lib/
│   └── ai/
├── tests/
│   └── (Playwright)
└── prisma/

Statut du document : ACTIF
Date de création : 2026-01-17
Version : 1.0
Responsable : John - Product Manager


🎯 OBJECTIFS SUCCÈS CRITÈRES

Pour considérer ce nettoyage comme un SUCCÈS :

  • Design unifié entre desktop, mobile, admin et profil
  • Toutes les modales testées avec Playwright
  • Aucun test abandonné en cas d'échec
  • 5+ nouvelles idées de fonctionnalités identifiées
  • Épics et User Stories propres et organisés
  • Backlog priorisé clairement
  • Implémentation commencée (Phase 7)

PRÊT À COMMENCER ? Dites-moi "A", "B" ou "C" ! 🚀