Files
stripstream/devbook.md
2025-02-22 16:04:28 +01:00

352 lines
8.8 KiB
Markdown

# 📚 StripStream - Devbook
## 🎯 Objectifs
Application web moderne pour la lecture de BD/mangas/comics via un serveur Komga.
## 🚀 Fonctionnalités à venir
### 📚 Gestion des séries
- [x] Système de favoris
- [x] Service de gestion des favoris
- [x] Bouton d'ajout/retrait des favoris
- [x] Menu dédié dans la sidebar avec la liste des séries favorites
- [ ] Carousel dédié dans sur la homepage de toutes les séries favorites
- [ ] Vue liste/grille
- [ ] Filtres et tri avancés
- [ ] Recherche globale
- [x] Bouton pour marquer comme lu
### 📖 Lecteur
- [x] Navigation entre les pages
- [x] Touches clavier (flèches, espace)
- [x] Swipe sur mobile
- [x] Boutons de navigation
- [x] Mode double page
- [x] Détection automatique en paysage
- [x] Toggle manuel
- [x] Gestion des spreads
- [x] Préchargement des pages
- [x] Cache des pages adjacentes
- [x] Nettoyage automatique du cache
- [x] Améliorations des thumbnails
- [x] Prefetch en 2 secondes
- [x] UI : barre de scroll plus grande
- [x] UI : scroll horizontal
- [x] Revue API thumbnail
- [x] Navigation avancée
- [x] Page fantôme avant le lecteur
- [ ] Switch to page direct
### 📖 Lecture
- [x] Téléchargement local des livres
- [x] Bouton de téléchargement
- [x] Gestion de la progression
- [x] Stockage local sécurisé
- [x] Bouton pour supprimer le téléchargement
- [ ] Bouton pour supprimer tous les livres téléchargés dans les préférences
- [ ] Support de nouveaux formats
- [ ] EPUB
- [ ] PDF
### 🔄 Cache et Performance
- [x] Revoir si tous les services utilisent bien le cache
- [ ] Invalidation du cache sur les mutations
- [x] Stratégie de revalidation à la demande
- [x] Prefetching intelligent
- [x] Lazy loading amélioré
### 👥 Gestion des utilisateurs
- [x] Système d'inscription
- [ ] Profil utilisateur enrichi
- [ ] Nom/Prénom
- [ ] Email
- [ ] Préférences personnalisées
- [ ] Gestion des rôles et permissions
### 🌍 Internationalisation
- [ ] Support multi-langues
- [ ] i18n
- [ ] RTL support
### 🧪 Tests
- [ ] Tests unitaires
- [ ] Services
- [ ] Hooks
- [ ] Utils
- [ ] Tests d'intégration
- [ ] Flows utilisateur
- [ ] API integration
- [ ] Tests E2E
- [ ] User journeys
- [ ] Cross-browser
### 📝 Documentation
- [x] README
- [x] Installation
- [x] Configuration
- [x] Development
- [ ] Guide d'utilisation
- [ ] Features
- [ ] Shortcuts
- [ ] Tips & tricks
- [x] Documentation API
- [x] Endpoints
- [ ] Types
- [ ] Examples
### 🚀 Déploiement
- [ ] Configuration du build
- [ ] Optimisations de build
- [ ] Analyse de bundle
- [ ] Scripts de déploiement
- [ ] CI/CD
- [ ] Environnements
- [ ] Documentation d'installation
- [ ] Requirements
- [ ] Step-by-step guide
## 📋 Fonctionnalités principales
### 🔐 Authentification et Configuration
- [x] Interface de connexion
- [x] Formulaire de connexion
- [x] Déconnexion
- [x] Page de paramétrage pour la configuration Komga
- [x] Configuration du serveur
- [x] Test de connexion
- [x] Gestion du cache
### 📚 Bibliothèque
- [x] Visualisation et navigation
- [x] Liste des bibliothèques
- [x] Affichage des séries par bibliothèque
- [x] Couvertures et informations des séries
- [x] Pagination
- [x] Statut de lecture avec transparence pour les éléments lus
- [x] Informations au survol
### 📖 Lecteur
- [x] Lecteur de fichiers (CBZ, CBR)
- [x] Navigation entre les pages
- [x] Mode plein écran
- [x] Raccourcis clavier
- [x] Mode double page
- [x] Zoom et pan
- [x] Préchargement des pages
### 📱 PWA
- [x] Installation
- [x] Manifest
- [x] Service worker
- [x] Icons
- [x] Splash screens
- [x] Mode hors ligne
- [x] Offline page
- [x] Cache stratégies
- [x] Background sync
- [x] Support iOS
- [x] Configurations spécifiques
- [x] Splash screens iOS
- [x] Status bar
### 🎨 UI/UX
- [x] Design responsive
- [x] Mobile-first
- [x] Breakpoints cohérents
- [x] Touch-friendly
- [x] Animations et transitions
- [x] Page transitions
- [x] Loading states
- [x] Micro-interactions
- [x] Feedback utilisateur
- [x] Toasts pour les actions
- [x] Messages d'erreur contextuels
- [x] Indicateurs de progression
- [x] États de chargement
- [x] Skeletons
- [x] Suspense boundaries
- [x] Loading spinners
- [x] Gestion des erreurs UI
- [x] Error boundaries
- [x] Fallbacks élégants
- [x] Recovery options
### 🔍 Optimisations
- [x] Performance
- [x] Optimisation des images
- [x] Format WebP
- [x] Responsive images
- [x] Lazy loading
- [x] Components
- [x] Images
- [x] Routes
- [x] Mise en cache
- [x] API responses
- [x] Static assets
- [x] Images
- [x] SEO
- [x] Meta tags
- [x] Sitemap
- [x] robots.txt
- [x] Accessibilité
- [x] ARIA labels
- [x] Keyboard navigation
- [x] Screen readers
- [x] Color contrast
## 🛠 Configuration initiale
- [x] Mise en place du projet Next.js
- [x] Configuration TypeScript
- [x] Configuration ESLint et Prettier
- [x] Configuration Tailwind CSS
- [x] Configuration des alias de chemins
- [x] Mise en place de l'authentification
- [x] Configuration du stockage sécurisé des credentials
- [x] Service de stockage avec localStorage/sessionStorage
- [x] Encodage basique des données sensibles
- [x] Gestion des cookies pour le middleware
- [x] Middleware d'authentification (protection des routes)
- [x] Protection des routes publiques/privées
- [x] Redirection vers la page de login
- [x] Gestion des routes d'API
- [x] Configuration des variables d'environnement
- [x] Création du fichier .env.local.example
- [x] URL de l'application
- [x] URL par défaut du serveur Komga
- [x] Version de l'application
- [x] Types pour les variables d'environnement
- [x] Déclaration des types ProcessEnv
- [x] Variables publiques (NEXT*PUBLIC*\*)
## 📚 Structure de l'application
- [x] Mise en place de l'architecture des dossiers
- [x] Components
- [x] Layouts
- [x] Pages (routes)
- [x] Services (API)
- [x] Types
- [x] Hooks personnalisés
- [x] Utils
- [x] Création des types TypeScript
- [x] Types pour l'API Komga
- [x] Types des utilisateurs et rôles
- [x] Types des bibliothèques
- [x] Types des séries et livres
- [x] Types des métadonnées
- [x] Types pour les états d'authentification
- [x] Configuration d'authentification
- [x] État d'authentification
- [x] Gestion des erreurs
- [x] Types pour les préférences utilisateur
## 🔄 Intégration Komga
- [x] Service d'API
- [x] Client HTTP avec fetch natif
- [x] Gestion des tokens Basic Auth
- [x] Cache des requêtes
- [x] Gestion des erreurs
- [x] Typage des réponses
- [x] Endpoints
- [x] Authentification
- [x] Collections
- [x] Séries
- [x] Tomes
- [x] Progression de lecture
- [x] Images et miniatures
### Gestion des séries
- [x] Système de favoris (ajout/retrait d'une série des favoris)
### 🔐 Authentification et Sécurité
- [ ] Renforcement de la sécurité
- [ ] Implémentation des JWT
- [ ] Tokens d'accès et de rafraîchissement
- [ ] Rotation des clés de signature
- [ ] Sécurisation des cookies
- [ ] Flags HttpOnly, Secure, SameSite
- [ ] Chiffrement des données sensibles
- [ ] Gestion des sessions
- [ ] Table de sessions en base de données
- [ ] Détection des connexions simultanées
- [ ] Système "Se souvenir de moi"
- [ ] Protection contre les attaques
- [ ] Rate limiting
- [ ] Protection CSRF
- [ ] Validation des entrées avec Zod
- [ ] Audit et logging
- [ ] Journalisation des connexions
- [ ] Alertes de sécurité
### 🎨 UI/UX
- [x] Composants de base
- [x] Boutons et inputs
- [x] Cards et grilles
- [x] Modals et popovers
- [x] Navigation
- [x] Sidebar responsive
- [x] Breadcrumbs
- [x] Menu utilisateur
- [ ] Thèmes
- [x] Mode sombre/clair
- [ ] Thèmes personnalisés
- [ ] Persistance des préférences
### 🔍 Performance
- [x] Optimisation des images
- [x] Format WebP
- [x] Tailles responsives
- [x] Lazy loading
- [ ] Cache
- [x] Stratégies par type de contenu
- [x] Invalidation intelligente
- [x] Prefetching sélectif
- [ ] Métriques
- [ ] Core Web Vitals
- [ ] Analytics de performance
- [ ] Monitoring des erreurs
### 📊 Analytics et Monitoring
- [ ] Tracking utilisateur
- [ ] Pages vues
- [ ] Temps de lecture
- [ ] Interactions clés
- [ ] Monitoring technique
- [ ] Logs d'erreurs
- [ ] Métriques de performance
- [ ] Alertes
### 🔄 Intégration Continue
- [ ] Tests automatisés
- [ ] Tests unitaires
- [ ] Tests d'intégration
- [ ] Tests E2E
- [ ] Pipeline CI/CD
- [ ] Build et tests
- [ ] Déploiement automatique
- [ ] Environnements de staging