Tutoriel d'application de facturation avec Next.js, Vercel et Back4app
Dans ce tutoriel, nous allons construire une application complète d' Invoicing App en utilisant Next.js comme frontend, Back4App comme backend, et des services supplémentaires comme Clerk pour l'authentification, Stripe pour les paiements, et Resend pour les notifications par e-mail. Ce guide vous expliquera comment configurer l'authentification, la gestion des factures, le traitement des paiements, et le déploiement sur Vercel.
Avant de commencer, assurez-vous d'avoir ce qui suit :
- Connectez-vous à Back4App et créez un nouveau projet.
- Accédez au Data Browser et créez les classes suivantes :
- identifiant d'objet
- nom d'utilisateur
- email
- Créer une classe appelée Organisation.
- Ajouter les colonnes suivantes :
- nom (String) : Le nom de l'organisation.
- ownerId (Pointer<_User>) : Pointe vers la classe User (créée automatiquement par Clerk).
- membres (Array<Pointer<_User>>) : Un tableau d'utilisateurs qui appartiennent à cette organisation.
- Créer une classe appelée Client.
- Ajouter ces colonnes :
- nom (String) : Nom du client.
- email (String) : Email du client.
- organizationId (Pointer) : Organisation à laquelle ce client appartient.
- Créer une classe appelée Facture.
- Ajouter ces colonnes :
- numeroDeFacture (String) : Identifiant unique de la facture.
- idClient (Pointer) : Lien vers le client.
- idOrganisation (Pointer) : Lien vers l'organisation.
- montant (Number) : Montant total de la facture.
- statut (String) : Options incluent 'brouillon', 'envoyé', 'payé' et 'en retard'.
- dateLimite (Date) : La date d'échéance de la facture.
- articles (Array) : La liste des articles dans la facture.
- Créer une classe appelée Paiement.
- Ajouter ces colonnes :
- idFacture (Pointer) : Lien vers la facture associée.
- montant (Number) : Montant du paiement.
- idSessionStripe (String) : L'ID de la session Stripe.
- statut (String) : Statut du paiement (par exemple, 'en attente', 'réussi', 'échoué').
Commencez par configurer votre projet Next.js avec TypeScript, Tailwind CSS et les composants shadcn/ui.
Configurez Tailwind en mettant à jour le tailwind.config.js et en ajoutant les styles à globals.css.
Dans tailwind.config.js:
Dans styles/globals.css:
Installez les dépendances nécessaires pour Parse, Clerk, Stripe et Resend.
Dans pages/_app.tsx, initialisez le SDK Parse avec vos identifiants Back4App :
Remplacez 'YOUR_APP_ID' et 'YOUR_JAVASCRIPT_KEY' par vos identifiants Back4App.
Configurez Clerk pour l'authentification. Allez sur le tableau de bord de Clerk, créez une application et récupérez vos clés API. Mettez à jour votre .env.local fichier avec les clés de Clerk.
Maintenant créez pages/sign-in.tsx et pages/sign-up.tsx pour la fonctionnalité de connexion et d'inscription en utilisant les composants de Clerk.
Dans pages/sign-in.tsx:
Dans pages/sign-up.tsx:
Les utilisateurs peuvent créer des organisations dont ils sont propriétaires. Créez une page pages/organizations/new.tsx pour créer de nouvelles organisations.
Créez une page de gestion des clients pages/customers/new.tsx pour ajouter de nouveaux clients.
Créez une page de création de factures pages/invoices/new.tsx pour générer de nouvelles factures.
Créer une page pages/invoices/index.tsx pour voir toutes les factures avec des options de tri et de filtrage.
Pour traiter les paiements, intégrez Stripe. Dans pages/invoices/[id].tsx, implémentez la création de lien de paiement en utilisant Stripe Checkout.
Configurer Resend pour envoyer des emails de factures aux clients.
Pour déployer l'application sur Vercel, installez le CLI Vercel et déployez.
Configurez les variables d'environnement pour Clerk, Stripe, Resend et Back4App dans le tableau de bord Vercel avant le déploiement.
Dans ce tutoriel, nous avons construit une application complète de facturation avec Next.js, intégré Back4App pour le backend, Clerk pour l'authentification, Stripe pour les paiements, et Resend pour les notifications par email. Nous avons couvert la gestion des utilisateurs et des organisations, la création de factures, le traitement des paiements et le déploiement.