- 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
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 :
- 🎨 Revoir le design (référence :
code.html- notebook voyage desktop) - 🏛️ Revoir le design des pages admin et profil
- 📱 Revoir le design mobile (référence :
code_mobile.html) - 🔔 Tester toutes les popups et modales
- ⚠️ Utiliser Playwright pour TOUS les tests - NE JAMAIS ABANDONNER si échec
- 🔍 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) :
- auto-label-suggestion-dialog.tsx - Suggestions d'étiquettes AI
- batch-organization-dialog.tsx - Organisation en lot des notes
- notebook-summary-dialog.tsx - Résumé du notebook
- delete-notebook-dialog.tsx - Suppression de notebook
- edit-notebook-dialog.tsx - Édition de notebook
- create-notebook-dialog.tsx - Création de notebook
- label-management-dialog.tsx - Gestion des étiquettes
- collaborator-dialog.tsx - Gestion des collaborateurs
- reminder-dialog.tsx - Rappels de notes
- fusion-modal.tsx - Fusion de notes
- comparison-modal.tsx - Comparaison de notes
- ui/dialog.tsx - Composant Dialog de base
- 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-sm→shadow-xlau survol - Animations :
duration-300hover, 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-200transitions
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 principaleadmin-page-header.tsx- En-tête admincreate-user-dialog.tsx- Création d'utilisateur
Profil :
profile-page-header.tsx- En-tête profilkeep-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 mobileheader.tsx- Header responsivenote-card.tsx- Carte notes responsivesidebar.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 :
- ✅ Analyse des fichiers HTML de référence
- ✅ Recherche web sur les tendances 2026
- ✅ Inventaire des popups/modales (13 fichiers)
- ✅ Identification des pages admin/profil
- ✅ Identification des composants mobile
- ⏳ Examiner le code actuel des pages admin/profil
- ⏳ 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 :
- ⏳ Créer wireframes pour :
- Page notebook (desktop)
- Page notebook (mobile)
- Page admin
- Page profil
- ⏳ Définir la palette de couleurs unifiée
- ⏳ Standardiser la typographie
- ⏳ Créer les composants UI réutilisables
- ⏳ 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 :
- ⏳ Définir les fonctionnalités du Design System
- ⏳ Définir les fonctionnalités Admin/Profil
- ⏳ Définir les fonctionnalités Mobile
- ⏳ Définir les tests Playwright
- ⏳ Créer les User Stories manquantes
- ⏳ 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 :
- ⏳ Revoir les 12 épics actuels
- ⏳ Archiver les épics/user stories obsolètes
- ⏳ 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)
- ⏳ Réorganiser les user stories
- ⏳ 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 :
- ⏳ Créer des tests pour les 13 modales
- ⏳ 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
- ⏳ 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
- ⏳ 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 :
- ⏳ Benchmark des applications similaires :
- Notion
- Obsidian
- Evernote
- OneNote
- Bear
- ⏳ Identifier les fonctionnalités innovantes
- ⏳ Proposer 5-10 nouvelles idées
- ⏳ Créer des wireframes pour les idées retenues
- ⏳ 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é :
- Design System (Epic 10)
- Desktop Design Refactor (Epic 13)
- Admin & Profil Redesign (Epic 14)
- Mobile UX Overhaul (Epic 15)
- Playwright Test Suite (Epic 16)
- 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 :
-
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
-
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
-
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" ! 🚀