story-research-zapwall/features/remaining-tasks.md
2025-12-22 09:48:57 +01:00

7.2 KiB

É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

  1. QR Code pour factures Lightning
  2. Gestion expiration factures avec timer
  3. Retry logic et gestion d'erreurs robuste
  4. 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

  1. Tests (non planifié)
  2. Documentation utilisateur
  3. 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