216 lines
7.2 KiB
Markdown
216 lines
7.2 KiB
Markdown
# Éléments restants à implémenter
|
|
|
|
**Date** : Décembre 2024
|
|
**Status** : 12 éléments complétés, 2 éléments non planifiés
|
|
|
|
## ✅ Éléments complétés (12/14)
|
|
|
|
### Priorité 1 - Fonctionnalités critiques ✅ COMPLÉTÉE
|
|
1. ✅ Signature distante pour publication (NIP-46)
|
|
2. ✅ Génération d'invoice côté auteur
|
|
3. ✅ Parsing des tags invoice depuis les événements
|
|
|
|
### Priorité 2 - Améliorations UX/UI ✅ COMPLÉTÉE
|
|
4. ✅ QR Code pour factures Lightning
|
|
5. ✅ Gestion expiration factures avec timer
|
|
6. ✅ Retry logic et gestion d'erreurs robuste
|
|
7. ✅ Détection et guide d'installation Alby
|
|
|
|
---
|
|
|
|
## 📋 Éléments non planifiés (2/14)
|
|
|
|
### Priorité 3 - Fonctionnalités avancées (4 éléments) ✅ COMPLÉTÉE
|
|
|
|
#### 1. Filtrage et recherche d'articles ✅
|
|
**Status** : Complété
|
|
**Priorité** : Moyenne
|
|
|
|
**Description** : Permettre aux utilisateurs de rechercher et filtrer les articles.
|
|
|
|
**Implémenté** :
|
|
- ✅ Barre de recherche par titre/contenu/aperçu
|
|
- ✅ Filtres (par auteur, prix min/max)
|
|
- ✅ Tri (date nouveau/ancien, prix croissant/décroissant)
|
|
|
|
**Fichiers créés** :
|
|
- ✅ `components/ArticleFilters.tsx` - Composant de filtres
|
|
- ✅ `components/SearchBar.tsx` - Barre de recherche
|
|
- ✅ `lib/articleFiltering.ts` - Logique de filtrage et tri
|
|
- ✅ `features/filtering-search-implementation.md` - Documentation
|
|
|
|
**Fichiers modifiés** :
|
|
- ✅ `pages/index.tsx` - Ajout filtres et recherche
|
|
- ✅ `hooks/useArticles.ts` - Ajout logique de filtrage
|
|
|
|
---
|
|
|
|
#### 2. Profil utilisateur et articles de l'utilisateur ✅
|
|
**Status** : Complété
|
|
**Priorité** : Moyenne
|
|
|
|
**Description** : Page de profil affichant les articles de l'utilisateur connecté.
|
|
|
|
**Implémenté** :
|
|
- ✅ Page `/profile` pour l'utilisateur connecté
|
|
- ✅ Liste des articles publiés par l'utilisateur
|
|
- ✅ Recherche et filtres sur les articles
|
|
- ✅ Compteur d'articles publiés
|
|
- ⏳ Statistiques détaillées (vues, paiements) - À venir
|
|
- ⏳ Édition/suppression d'articles - À venir
|
|
|
|
**Fichiers créés** :
|
|
- ✅ `pages/profile.tsx` - Page de profil
|
|
- ✅ `components/UserProfile.tsx` - Affichage du profil
|
|
- ✅ `components/UserArticles.tsx` - Liste des articles de l'utilisateur
|
|
- ✅ `hooks/useUserArticles.ts` - Hook pour charger les articles par auteur
|
|
- ✅ `features/user-profile-implementation.md` - Documentation
|
|
|
|
**Fichiers modifiés** :
|
|
- ✅ `components/ConnectButton.tsx` - Lien vers le profil
|
|
|
|
---
|
|
|
|
#### 3. Système de notifications ✅
|
|
**Status** : Complété
|
|
**Priorité** : Basse
|
|
|
|
**Description** : Notifier l'utilisateur des nouveaux paiements, nouveaux articles, etc.
|
|
|
|
**Implémenté** :
|
|
- ✅ Notifications en temps réel via relay Nostr (zap receipts)
|
|
- ✅ Badge de notification dans l'UI
|
|
- ✅ Centre de notifications avec liste complète
|
|
- ✅ Gestion des notifications (marquer comme lu, supprimer)
|
|
- ✅ Stockage persistant dans localStorage
|
|
- ⏳ Types supplémentaires (mentions, commentaires) - À venir
|
|
|
|
**Fichiers créés** :
|
|
- ✅ `types/notifications.ts` - Types pour les notifications
|
|
- ✅ `components/NotificationCenter.tsx` - Centre de notifications
|
|
- ✅ `components/NotificationBadge.tsx` - Badge de notification
|
|
- ✅ `hooks/useNotifications.ts` - Hook pour gérer les notifications
|
|
- ✅ `lib/notifications.ts` - Service de notifications
|
|
- ✅ `features/notifications-implementation.md` - Documentation
|
|
|
|
**Fichiers modifiés** :
|
|
- ✅ `components/ConnectButton.tsx` - Intégration du centre de notifications
|
|
- ✅ `lib/nostr.ts` - Ajout de getPool() pour accès au pool
|
|
|
|
---
|
|
|
|
#### 4. Amélioration du stockage du contenu privé ✅
|
|
**Status** : Complété
|
|
**Priorité** : Moyenne
|
|
|
|
**Description** : Le contenu privé utilise maintenant IndexedDB exclusivement (sans fallback).
|
|
|
|
**Implémenté** :
|
|
- ✅ Service IndexedDB pour le stockage (exclusif, pas de fallback)
|
|
- ✅ Gestion de l'expiration des contenus stockés (30 jours par défaut)
|
|
- ✅ Suppression automatique des données expirées
|
|
- ✅ Approche "fail-fast" : erreur si IndexedDB indisponible
|
|
- ⏳ Chiffrement des données sensibles - À venir (optionnel)
|
|
|
|
**Fichiers créés** :
|
|
- ✅ `lib/storage/indexedDB.ts` - Service IndexedDB exclusif
|
|
- ✅ `features/storage-improvement-implementation.md` - Documentation
|
|
- ✅ `features/fallbacks-found.md` - Documentation de la suppression des fallbacks
|
|
|
|
**Fichiers modifiés** :
|
|
- ✅ `lib/articleStorage.ts` - Utilisation d'IndexedDB avec expiration
|
|
- ✅ `lib/articlePublisher.ts` - Mise à jour pour fonctions async
|
|
- ✅ `lib/invoiceResolver.ts` - Mise à jour pour fonctions async
|
|
- ✅ `lib/paymentPolling.ts` - Mise à jour pour fonctions async
|
|
- ✅ `components/PaymentModal.tsx` - Suppression du fallback Lightning URI
|
|
- ✅ `lib/payment.ts` - Suppression du fallback zap request
|
|
- ✅ `lib/articleInvoice.ts` - Suppression du fallback invoice creation
|
|
|
|
---
|
|
|
|
### Priorité 4 - Qualité et maintenance (3 éléments)
|
|
|
|
#### 6. Documentation utilisateur ✅
|
|
**Status** : Complété
|
|
**Priorité** : Moyenne
|
|
|
|
**Description** : Documentation complète pour les utilisateurs finaux.
|
|
|
|
**Implémenté** :
|
|
- ✅ Guide d'utilisation complet
|
|
- ✅ FAQ avec questions fréquentes
|
|
- ✅ Tutoriel de publication d'articles
|
|
- ✅ Guide de paiement avec Alby
|
|
- ✅ Page `/docs` pour afficher la documentation
|
|
|
|
**Fichiers créés** :
|
|
- ✅ `docs/user-guide.md` - Guide d'utilisation complet
|
|
- ✅ `docs/faq.md` - Questions fréquentes
|
|
- ✅ `docs/publishing-guide.md` - Comment publier un article
|
|
- ✅ `docs/payment-guide.md` - Comment payer avec Alby
|
|
- ✅ `pages/docs.tsx` - Page de documentation avec navigation
|
|
- ✅ `pages/api/docs/[file].ts` - API route pour servir les fichiers markdown
|
|
|
|
**Fichiers modifiés** :
|
|
- ✅ `pages/index.tsx` - Ajout du lien vers la documentation dans le menu
|
|
|
|
---
|
|
|
|
#### 5. Tests
|
|
**Status** : Non planifié
|
|
**Priorité** : N/A
|
|
|
|
**Description** : Tests unitaires, d'intégration et E2E (décidé de ne pas implémenter pour l'instant).
|
|
|
|
|
|
---
|
|
|
|
#### 7. Analytics et monitoring
|
|
**Status** : Non planifié
|
|
**Priorité** : N/A
|
|
|
|
**Description** : Suivi de l'utilisation et métriques de performance (décidé de ne pas implémenter pour l'instant).
|
|
|
|
|
|
---
|
|
|
|
## 📊 Résumé par priorité
|
|
|
|
### Priorité 3 (Améliorations) - 4 éléments ✅ COMPLÉTÉE
|
|
1. ✅ Filtrage et recherche d'articles
|
|
2. ✅ Profil utilisateur
|
|
3. ✅ Système de notifications
|
|
4. ✅ Amélioration du stockage
|
|
|
|
### Priorité 4 (Qualité) - 3 éléments
|
|
5. ❌ Tests (non planifié)
|
|
6. ✅ Documentation utilisateur
|
|
7. ❌ Analytics et monitoring (non planifié)
|
|
|
|
---
|
|
|
|
## 🎯 Recommandations
|
|
|
|
### Tous les éléments fonctionnels sont complétés ✅
|
|
|
|
L'application est maintenant complète avec toutes les fonctionnalités principales :
|
|
- ✅ Publication d'articles avec paiement Lightning
|
|
- ✅ Lecture et déblocage d'articles
|
|
- ✅ Recherche et filtrage
|
|
- ✅ Profil utilisateur
|
|
- ✅ Notifications
|
|
- ✅ Documentation complète
|
|
|
|
Les éléments non planifiés (Tests et Analytics) peuvent être ajoutés plus tard si nécessaire.
|
|
|
|
---
|
|
|
|
## 📝 Notes
|
|
|
|
- ✅ Le code est propre et optimisé (tous les fichiers < 250 lignes)
|
|
- ✅ Les fonctionnalités critiques sont complètes
|
|
- ✅ L'application est fonctionnelle et prête pour la production
|
|
- ✅ Tous les fallbacks ont été supprimés (approche "fail-fast")
|
|
- ✅ Documentation utilisateur complète
|
|
- ✅ Tests et Analytics : Décidés de ne pas implémenter pour l'instant
|