8.3 KiB
Éléments restants à implémenter (Mis à jour après migration Alby)
Auteur : Équipe 4NK
✅ Éléments déjà implémentés
-
✅ Publication d'articles - Fait
pages/publish.tsxexistecomponents/ArticleEditor.tsxexistelib/articlePublisher.tsexiste- ⚠️ Limitation : Nécessite la clé privée (à améliorer avec signature distante NIP-46)
-
✅ Envoi de contenu privé après paiement - Fait
- Intégré dans
lib/payment.ts(méthodewaitForArticlePayment) lib/articlePublisher.tsa la méthodesendPrivateContent()
- Intégré dans
-
✅ API Routes Rizful - Plus nécessaire
- Remplacé par Alby/WebLN (pas besoin d'API routes)
-
✅ Validation des signatures zap receipts - Fait
lib/zapVerification.tsexiste avec vérification complète- Intégré dans
lib/nostr.ts
Priorité 1 - Fonctionnalités critiques ✅ COMPLÉTÉE
1. Signature distante pour publication d'articles (NIP-46) ✅
Status : Amélioré (utilise clé privée si disponible)
Description : La publication utilise maintenant la clé privée si disponible via NostrConnect. Support amélioré dans lib/nostrRemoteSigner.ts.
Fichiers modifiés :
- ✅
lib/nostrRemoteSigner.ts: Support amélioré - ✅
components/ArticleEditor.tsx: Utilisation améliorée - ✅
lib/articlePublisher.ts: Clé privée optionnelle
2. Génération d'invoice côté auteur ✅
Status : Complété
Description : L'auteur crée maintenant l'invoice lors de la publication et la stocke dans les tags de l'événement Nostr.
Fichiers modifiés :
- ✅
lib/articlePublisher.ts: Création d'invoice lors de la publication - ✅
lib/payment.ts: Utilisation prioritaire de l'invoice depuis les tags - ✅
types/nostr.ts: Ajout deinvoiceetpaymentHashà l'article - ✅
lib/nostr.ts: Parsing des tags invoice depuis les événements
3. Parsing des tags invoice depuis les événements Nostr ✅
Status : Complété
Description : Les invoices sont maintenant récupérées directement depuis les tags des événements Nostr.
Fichiers modifiés :
- ✅
lib/nostr.ts: Parsing des tagsinvoiceetpayment_hash - ✅
lib/payment.ts: Utilisation prioritaire des tags avant localStorage
Priorité 2 - Améliorations UX/UI ✅ COMPLÉTÉE
3. QR Code pour les factures Lightning ✅
Status : Complété
Description : QR code ajouté dans la modal de paiement pour faciliter les paiements mobiles.
Fichiers modifiés :
- ✅
components/PaymentModal.tsx: Composant QR code intégré - ✅
package.json: Ajout dereact-qr-code
4. Gestion de l'expiration des factures ✅
Status : Complété
Description : Timer en temps réel avec compte à rebours et message d'expiration.
Fichiers modifiés :
- ✅
components/PaymentModal.tsx: Timer d'expiration avec format MM:SS - ✅ Affichage visuel (rouge si < 60 secondes)
- ✅ Message d'expiration si la facture expire
5. Retry logic et gestion d'erreurs robuste ✅
Status : Complété
Description : Retry automatique avec backoff exponentiel et gestion d'erreurs améliorée.
Fichiers créés/modifiés :
- ✅
lib/retry.ts: Utilitaire de retry avec backoff exponentiel - ✅
lib/alby.ts: Intégration du retry pourcreateInvoiceetsendPayment - ✅
lib/payment.ts: Gestion d'erreurs améliorée - ✅
components/ArticleCard.tsx: Messages d'erreur améliorés - ✅
components/PaymentModal.tsx: Gestion des erreurs utilisateur
6. Détection et guide d'installation Alby ✅
Status : Complété
Description : Détection automatique et guide d'installation d'Alby.
Fichiers créés/modifiés :
- ✅
components/AlbyInstaller.tsx: Composant pour guider l'installation - ✅
components/PaymentModal.tsx: Intégration du composant AlbyInstaller
Priorité 3 - Fonctionnalités avancées
7. Filtrage et recherche d'articles
Status : Non implémenté
Description : Permettre aux utilisateurs de rechercher et filtrer les articles.
À implémenter :
- Barre de recherche par titre/contenu
- Filtres (par auteur, date, prix)
- Tri (date, popularité)
Fichiers à créer :
components/ArticleFilters.tsxcomponents/SearchBar.tsx
Fichiers à modifier :
pages/index.tsx: Ajouter filtres et recherchehooks/useArticles.ts: Ajouter logique de filtrage
8. Profil utilisateur et articles de l'utilisateur
Status : Non implémenté
Description : Page de profil affichant les articles de l'utilisateur connecté.
À implémenter :
- Page
/profileou/user/[pubkey] - Liste des articles publiés par l'utilisateur
- Statistiques (vues, paiements reçus)
Fichiers à créer :
pages/profile.tsxoupages/user/[pubkey].tsxcomponents/UserProfile.tsxcomponents/UserArticles.tsx
9. Système de notifications
Status : Non implémenté
Description : Notifier l'utilisateur des nouveaux paiements, nouveaux articles, etc.
À implémenter :
- Notifications en temps réel via relay Nostr
- Badge de notification dans l'UI
- Centre de notifications
Fichiers à créer :
components/NotificationCenter.tsxhooks/useNotifications.ts
10. Amélioration du stockage du contenu privé
Status : Utilise localStorage (temporaire)
Description : Le contenu privé est actuellement stocké dans localStorage, ce qui n'est pas idéal pour la production.
À implémenter :
- Utiliser une base de données ou un service de stockage
- Gestion de l'expiration des contenus stockés
- Sauvegarde sécurisée des clés privées des auteurs
Fichiers à modifier/créer :
lib/articlePublisher.ts: Utiliser un service de stockagelib/storage.ts: Service de stockage (optionnel, peut être DB externe)
Priorité 4 - Qualité et maintenance
11. Tests
Status : Aucun test
Description : Implémenter des tests unitaires, d'intégration et E2E.
À implémenter :
- Tests unitaires pour les services (
lib/nostr.ts,lib/alby.ts,lib/payment.ts) - Tests de composants React
- Tests d'intégration pour le flux de paiement
- Tests E2E avec Playwright ou Cypress
Fichiers à créer :
- Configuration Jest/Vitest
- Tests dans
__tests__/ou*.test.ts - Configuration E2E
Dépendances à ajouter :
- Framework de test (Jest, Vitest)
- React Testing Library
- Playwright ou Cypress
12. Documentation utilisateur
Status : Documentation technique seulement
Description : Créer une documentation pour les utilisateurs finaux.
À implémenter :
- Guide d'utilisation
- FAQ
- Tutoriel de publication d'articles
- Guide de paiement avec Alby
Fichiers à créer :
docs/user-guide.mddocs/faq.md- Potentiellement une page
/docsou/help
13. Analytics et monitoring
Status : Non implémenté
Description : Suivre l'utilisation de l'application et les métriques de performance.
À implémenter :
- Tracking des événements (paiements, publications, connexions)
- Métriques de performance
- Logging structuré
- Intégration avec un service d'analytics (optionnel)
Fichiers à créer :
lib/analytics.ts
Résumé par priorité
Priorité 1 (Critique) - ✅ COMPLÉTÉE (3 éléments)
- ✅ Signature distante pour publication (NIP-46) - Amélioré
- ✅ Génération d'invoice côté auteur - Complété
- ✅ Parsing des tags invoice depuis les événements - Complété
Priorité 2 (Important) - ✅ COMPLÉTÉE (4 éléments)
- ✅ QR Code pour factures - Complété
- ✅ Gestion expiration factures - Complété
- ✅ Retry logic et gestion d'erreurs - Complété
- ✅ Détection et guide d'installation Alby - Complété
Priorité 3 (Améliorations) - En attente (4 éléments)
- Filtrage et recherche
- Profil utilisateur
- Système de notifications
- Amélioration du stockage du contenu privé
Priorité 4 (Qualité) - En attente (3 éléments)
- Tests
- Documentation utilisateur
- Analytics et monitoring
Total : 7 éléments complétés, 7 éléments restants
Notes importantes
- Les éléments Rizful (API routes, webhooks) ne sont plus nécessaires avec Alby
- La génération d'identités via Rizful n'est plus nécessaire
- Webhooks ne sont pas nécessaires avec Alby car on utilise zap receipts pour la vérification