Nicolas Cantu 3000872dbc refactoring
- **Motivations :** Assurer passage du lint strict et clarifier la logique paiements/publications.

- **Root causes :** Fonctions trop longues, promesses non gérées et typages WebLN/Nostr incomplets.

- **Correctifs :** Refactor PaymentModal (handlers void), extraction helpers articlePublisher, simplification polling sponsoring/zap, corrections curly et awaits.

- **Evolutions :** Nouveau module articlePublisherHelpers pour présentation/aiguillage contenu privé.

- **Page affectées :** components/PaymentModal.tsx, lib/articlePublisher.ts, lib/articlePublisherHelpers.ts, lib/paymentPolling.ts, lib/sponsoring.ts, lib/nostrZapVerification.ts et dépendances liées.
2025-12-22 17:56:00 +01:00

48 lines
1.7 KiB
Markdown

# zapwall4Science
Plateforme de publication d'articles scientifiques et de science-fiction avec système de sponsoring, commissions et rémunération des avis. Les lecteurs peuvent lire les aperçus gratuitement et débloquer le contenu complet en payant avec Lightning Network.
## Features
- **NostrConnect Integration**: Authenticate using NostrConnect (default: use.nsec.app)
- **Free Previews**: Public notes showing article previews
- **Paid Content**: Private notes containing full content, unlocked after 800 sats zap
- **Lightning Payments**: Integrated Alby/WebLN for Lightning payments (works with Alby and other Lightning wallets)
- **Payment Modal**: User-friendly payment interface with invoice display
- **TypeScript**: Fully typed codebase
## Getting Started
1. Install dependencies:
```bash
npm install
```
2. Run the development server:
```bash
npm run dev
```
3. Open [http://localhost:3000](http://localhost:3000) in your browser
## Environment Variables
- `NEXT_PUBLIC_NOSTR_RELAY_URL`: Nostr relay URL (default: wss://relay.damus.io)
- `NEXT_PUBLIC_NOSTRCONNECT_BRIDGE`: NostrConnect bridge URL (default: https://use.nsec.app)
## Lightning Wallet Setup
This project uses the WebLN standard for Lightning payments, which works with:
- **Alby** (recommended): Install the [Alby browser extension](https://getalby.com/)
- Other WebLN-compatible Lightning wallets
Users need to have a Lightning wallet extension installed to make payments. The payment flow will prompt them to connect their wallet when needed.
## Project Structure
- `/pages`: Next.js pages
- `/components`: React components
- `/lib`: Utilities and Nostr helpers
- `/types`: TypeScript type definitions
- `/hooks`: Custom React hooks