245 lines
8.3 KiB
Markdown
245 lines
8.3 KiB
Markdown
# Éléments restants à implémenter (Mis à jour après migration Alby)
|
|
|
|
**Auteur** : Équipe 4NK
|
|
|
|
## ✅ Éléments déjà implémentés
|
|
|
|
1. ✅ **Publication d'articles** - Fait
|
|
- `pages/publish.tsx` existe
|
|
- `components/ArticleEditor.tsx` existe
|
|
- `lib/articlePublisher.ts` existe
|
|
- ⚠️ Limitation : Nécessite la clé privée (à améliorer avec signature distante NIP-46)
|
|
|
|
2. ✅ **Envoi de contenu privé après paiement** - Fait
|
|
- Intégré dans `lib/payment.ts` (méthode `waitForArticlePayment`)
|
|
- `lib/articlePublisher.ts` a la méthode `sendPrivateContent()`
|
|
|
|
3. ✅ **API Routes Rizful** - Plus nécessaire
|
|
- Remplacé par Alby/WebLN (pas besoin d'API routes)
|
|
|
|
4. ✅ **Validation des signatures zap receipts** - Fait
|
|
- `lib/zapVerification.ts` existe 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 de `invoice` et `paymentHash` à 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 tags `invoice` et `payment_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 de `react-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 pour `createInvoice` et `sendPayment`
|
|
- ✅ `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.tsx`
|
|
- `components/SearchBar.tsx`
|
|
|
|
**Fichiers à modifier** :
|
|
- `pages/index.tsx` : Ajouter filtres et recherche
|
|
- `hooks/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 `/profile` ou `/user/[pubkey]`
|
|
- Liste des articles publiés par l'utilisateur
|
|
- Statistiques (vues, paiements reçus)
|
|
|
|
**Fichiers à créer** :
|
|
- `pages/profile.tsx` ou `pages/user/[pubkey].tsx`
|
|
- `components/UserProfile.tsx`
|
|
- `components/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.tsx`
|
|
- `hooks/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 stockage
|
|
- `lib/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.md`
|
|
- `docs/faq.md`
|
|
- Potentiellement une page `/docs` ou `/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)
|
|
1. ✅ Signature distante pour publication (NIP-46) - Amélioré
|
|
2. ✅ Génération d'invoice côté auteur - Complété
|
|
3. ✅ Parsing des tags invoice depuis les événements - Complété
|
|
|
|
### Priorité 2 (Important) - ✅ COMPLÉTÉE (4 éléments)
|
|
4. ✅ QR Code pour factures - Complété
|
|
5. ✅ Gestion expiration factures - Complété
|
|
6. ✅ Retry logic et gestion d'erreurs - Complété
|
|
7. ✅ Détection et guide d'installation Alby - Complété
|
|
|
|
### Priorité 3 (Améliorations) - En attente (4 éléments)
|
|
8. Filtrage et recherche
|
|
9. Profil utilisateur
|
|
10. Système de notifications
|
|
11. Amélioration du stockage du contenu privé
|
|
|
|
### Priorité 4 (Qualité) - En attente (3 éléments)
|
|
12. Tests
|
|
13. Documentation utilisateur
|
|
14. 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
|