Rechnungserstellungs-App-Tutorial mit Next.js, Vercel und Back4app
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.
Stellen Sie vor dem Start sicher, dass Sie Folgendes haben:
- Melden Sie sich bei Back4App an und erstellen Sie ein neues Projekt.
- Navigieren Sie zum Datenbrowser und erstellen Sie die folgenden Klassen:
- Objekt-ID
- Benutzername
- E-Mail
- Erstellen Sie eine Klasse namens Organisation.
- 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.
- Erstellen Sie eine Klasse namens Kunde.
- 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.
- Erstellen Sie eine Klasse namens Rechnung.
- 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.
- Erstellen Sie eine Klasse namens Zahlung.
- 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').
Beginnen Sie mit der Einrichtung Ihres Next.js-Projekts mit TypeScript, Tailwind CSS und shadcn/ui-Komponenten.
Konfigurieren Sie Tailwind, indem Sie die tailwind.config.js aktualisieren und die Stile zu globals.css hinzufügen.
In tailwind.config.js:
In styles/globals.css:
Installieren Sie die erforderlichen Abhängigkeiten für Parse, Clerk, Stripe und Resend.
In pages/_app.tsx, initialisieren Sie das Parse SDK mit Ihren Back4App-Anmeldeinformationen:
Ersetzen Sie 'YOUR_APP_ID' und 'YOUR_JAVASCRIPT_KEY' durch Ihre Back4App-Anmeldeinformationen.
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.
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:
In pages/sign-up.tsx:
Benutzer können Organisationen erstellen, die sie besitzen. Erstellen Sie eine Seite pages/organizations/new.tsx zum Erstellen neuer Organisationen.
Erstellen Sie eine Kundenverwaltungsseite pages/customers/new.tsx zum Hinzufügen neuer Kunden.
Erstellen Sie eine Seite zur Rechnungsstellung pages/invoices/new.tsx zum Generieren neuer Rechnungen.
Erstellen Sie eine Seite pages/invoices/index.tsx um alle Rechnungen mit Sortier- und Filteroptionen anzuzeigen.
Um Zahlungen zu verarbeiten, integrieren Sie Stripe. In pages/invoices/[id].tsx, implementieren Sie die Erstellung des Zahlungslinks mit Stripe Checkout.
Richten Sie Resend ein, um Rechnungs-E-Mails an Kunden zu senden.
Um die App auf Vercel bereitzustellen, installieren Sie die Vercel CLI und stellen Sie bereit.
Konfigurieren Sie Umgebungsvariablen für Clerk, Stripe, Resend und Back4App im Vercel-Dashboard vor der Bereitstellung.
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.