NextJS-Vorlagen

Rechnungserstellungs-App-Tutorial mit Next.js, Vercel und Back4app

26min

In diesem Tutorial werden wir eine vollständige Invoicing App mit Next.js als Frontend, Back4App als Backend und zusätzlichen Diensten wie Clerk für die Authentifizierung, Stripe für Zahlungen und Resend für E-Mail-Benachrichtigungen erstellen. Diese Anleitung führt durch die Einrichtung der Authentifizierung, das Rechnungsmanagement, die Zahlungsabwicklung und die Bereitstellung auf Vercel.

1. Voraussetzungen

Stellen Sie vor dem Start sicher, dass Sie Folgendes haben:

2. Einrichtung des Backends (Back4App)

2.1 Erstellen eines neuen Projekts in Back4App

  1. Melden Sie sich bei Back4App an und erstellen Sie ein neues Projekt.
  2. Navigieren Sie zum Datenbrowser und erstellen Sie die folgenden Klassen:

2.2 Datenmodelle (Klassen)

2.2.1 Benutzer (Automatisch von Clerk verwaltet)

  • Objekt-ID
  • Benutzername
  • E-Mail

2.2.2 Organisation

  1. Erstellen Sie eine Klasse namens Organisation.
  2. Fügen Sie die folgenden Spalten hinzu:
    • Name (String): Der Name der Organisation.
    • ownerId (Pointer<_User>): Zeigt auf die Benutzer-Klasse (automatisch von Clerk erstellt).
    • Mitglieder (Array<Pointer<_User>>): Ein Array von Benutzern, die zu dieser Organisation gehören.

2.2.3 Kunde

  1. Erstellen Sie eine Klasse namens Kunde.
  2. Fügen Sie diese Spalten hinzu:
    • Name (String): Name des Kunden.
    • E-Mail (String): E-Mail des Kunden.
    • organisationId (Pointer): Organisation, zu der dieser Kunde gehört.

2.2.4 Rechnung

  1. Erstellen Sie eine Klasse namens Rechnung.
  2. Fügen Sie diese Spalten hinzu:
    • Rechnungsnummer (String): Eindeutiger Rechnungsbezeichner.
    • Kunden-ID (Pointer): Verweist auf den Kunden.
    • Organisations-ID (Pointer): Verweist auf die Organisation.
    • Betrag (Number): Gesamtbetrag für die Rechnung.
    • Status (String): Optionen sind 'Entwurf', 'Gesendet', 'Bezahlt' und 'Überfällig'.
    • Fälligkeitsdatum (Date): Das Fälligkeitsdatum der Rechnung.
    • Artikel (Array): Die Liste der Artikel in der Rechnung.

2.2.5 Zahlung

  1. Erstellen Sie eine Klasse namens Zahlung.
  2. Fügen Sie diese Spalten hinzu:
    • Rechnungs-ID (Pointer): Verweist auf die zugehörige Rechnung.
    • Betrag (Number): Zahlungsbetrag.
    • stripeSessionId (String): Die ID der Stripe-Sitzung.
    • Status (String): Zahlungsstatus (z.B. 'ausstehend', 'erfolgreich', 'fehlgeschlagen').

3. Einrichtung des Frontends (Next.js)

3.1 Erstellen eines Next.js-Projekts

Beginnen Sie mit der Einrichtung Ihres Next.js-Projekts mit TypeScript, Tailwind CSS und shadcn/ui-Komponenten.

Bash


3.2 Tailwind CSS einrichten

Konfigurieren Sie Tailwind, indem Sie die tailwind.config.js aktualisieren und die Stile zu globals.css hinzufügen.

In tailwind.config.js:

JS


In styles/globals.css:

CSS


3.3 Parse SDK und zusätzliche Dienste installieren

Installieren Sie die erforderlichen Abhängigkeiten für Parse, Clerk, Stripe und Resend.

Bash


3.4 Parse SDK in Next.js initialisieren

In pages/_app.tsx, initialisieren Sie das Parse SDK mit Ihren Back4App-Anmeldeinformationen:

TypeScript


Ersetzen Sie 'YOUR_APP_ID' und 'YOUR_JAVASCRIPT_KEY' durch Ihre Back4App-Anmeldeinformationen.

4. Implementierung der Benutzeranmeldung

4.1 Clerk-Integration für die Authentifizierung

Richten Sie Clerk für die Authentifizierung ein. Gehen Sie zum Dashboard von Clerk, erstellen Sie eine Anwendung und holen Sie sich Ihre API-Schlüssel. Aktualisieren Sie Ihre .env.local-Datei mit den Clerk-Schlüsseln.

Bash


Erstellen Sie jetzt pages/sign-in.tsx und pages/sign-up.tsx für die Anmelde- und Registrierungsfunktionalität mit Clerk-Komponenten.

In pages/sign-in.tsx:

Text


In pages/sign-up.tsx:

Text


5. Organisation und Kundenmanagement

5.1 Organisationen erstellen

Benutzer können Organisationen erstellen, die sie besitzen. Erstellen Sie eine Seite pages/organizations/new.tsx zum Erstellen neuer Organisationen.

Text


5.2 Kunden verwalten

Erstellen Sie eine Kundenverwaltungsseite pages/customers/new.tsx zum Hinzufügen neuer Kunden.

Text


6. Rechnungsverwaltung

6.1 Rechnungen erstellen

Erstellen Sie eine Seite zur Rechnungsstellung pages/invoices/new.tsx zum Generieren neuer Rechnungen.

Text


6.2 Rechnungen anzeigen

Erstellen Sie eine Seite pages/invoices/index.tsx um alle Rechnungen mit Sortier- und Filteroptionen anzuzeigen.

Text


7. Zahlungsabwicklung (Stripe-Integration)

7.1 Stripe Checkout einrichten

Um Zahlungen zu verarbeiten, integrieren Sie Stripe. In pages/invoices/[id].tsx, implementieren Sie die Erstellung des Zahlungslinks mit Stripe Checkout.

Text


8. E-Mail-Benachrichtigungen (Wiederholungsintegration)

8.1 Rechnungs-E-Mails senden

Richten Sie Resend ein, um Rechnungs-E-Mails an Kunden zu senden.

Text


9. Bereitstellung auf Vercel

Um die App auf Vercel bereitzustellen, installieren Sie die Vercel CLI und stellen Sie bereit.

Bash


Konfigurieren Sie Umgebungsvariablen für Clerk, Stripe, Resend und Back4App im Vercel-Dashboard vor der Bereitstellung.

10. Fazit

In diesem Tutorial haben wir eine vollständige Rechnungs-App mit Next.js erstellt, Back4App für das Backend integriert, Clerk für die Authentifizierung, Stripe für Zahlungen und Resend für E-Mail-Benachrichtigungen. Wir haben die Benutzer- und Organisationsverwaltung, die Erstellung von Rechnungen, die Zahlungsabwicklung und die Bereitstellung behandelt.