NextJS-Vorlagen

Tutorial zur Buchung von Besprechungsräumen mit Back4App, Next.js und Vercel

23min

In diesem Tutorial werden Sie Bookit, ein System zur Buchung von Besprechungsräumen, mit Next.js als Frontend-Framework und Back4App als Backend-Service erstellen. Sie werden die Benutzerauthentifizierung, das Raummanagement und die Buchungsfunktionalität implementieren und die App auf Vercel bereitstellen.

1. Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

2. Einrichtung von Back4App

  1. Melden Sie sich bei Ihrem Back4App-Konto an und navigieren Sie zu Ihrem Projekt-Dashboard.
  2. Klicken Sie in der linken Seitenleiste auf Datenbank, um auf den Datenbrowser zuzugreifen.
  3. Sie müssen die folgenden Klassen erstellen, um die Daten zu modellieren:

2.1. Erstellen Sie die Benutzer-Klasse

Standardmäßig verwaltet Parse die Benutzerauthentifizierung, sodass Sie diese Klasse nicht manuell erstellen müssen. Parse verwaltet automatisch die folgenden Felder für Sie:

  • email: E-Mail-Adresse für den Login
  • password: Passwort (gehasht)
  • username: Optionaler Benutzername

2.2. Erstellen Sie die Room Klasse

  1. Im Data Browser, klicken Sie auf Klasse erstellen, wählen Sie Benutzerdefiniert, und benennen Sie die Klasse Raum.
  2. Fügen Sie die folgenden Spalten hinzu:

Spaltenname

Typ

Beschreibung

Name

Zeichenfolge

Raumname

Beschreibung

Zeichenfolge

Zimmerbeschreibung

Kapazität

Nummer

Anzahl der Personen, die der Raum fassen kann

Annehmlichkeiten

Array

Liste der Annehmlichkeiten (TV, WLAN usw.)

Preis

Nummer

Preis pro Stunde

Bild

Datei

Bild-URL

Besitzer

Zeiger

Weist auf die Benutzer Klasse hin

2.3. Erstellen Sie die Booking Klasse

  1. Erstellen Sie eine weitere benutzerdefinierte Klasse mit dem Namen Booking.
  2. Fügen Sie die folgenden Spalten hinzu:

Spaltenname

Typ

Beschreibung

Zimmer

Zeiger

Zeigt auf die Zimmer Klasse

Benutzer

Zeiger

Zeigt auf die Benutzer Klasse

Check-in

Datum

Startdatum/-uhrzeit der Buchung

Check-out

Datum

Enddatum/-uhrzeit der Buchung

3. Einrichtung von Next.js und Parse SDK

  1. Erstellen Sie ein neues Next.js-Projekt:
Bash

  1. Installieren Sie das Parse JS SDK:
Bash

  1. In der pages/_app.js-Datei, initialisieren Sie Parse mit Ihren Back4App-Anmeldeinformationen:
JS


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

4. Implementierung der Benutzeranmeldung

4.1. Benutzerregistrierung

Erstellen Sie eine neue Seite pages/signup.js mit einem Registrierungsformular:

JS


4.2. Benutzeranmeldung

Erstellen Sie pages/login.js für die Benutzeranmeldung:

JS


4.3. Geschützte Routen

Für geschützte Routen können Sie die Next.js API-Routen verwenden und überprüfen, ob der Benutzer authentifiziert ist:

JS


5. Raumverwaltung

5.1. Verfügbare Räume anzeigen

Erstellen Sie pages/index.js um verfügbare Räume aufzulisten:

JS


5.2. Hinzufügen eines Zimmers

Erstellen Sie pages/add-room.js zum Hinzufügen neuer Zimmer (für autorisierte Benutzer):

JS


5.3. Zimmerdetails

Erstellen Sie pages/rooms/[id].js um detaillierte Informationen über ein Zimmer anzuzeigen:

JS


6. Buchungssystem

6.1. Buchung eines Zimmers

Fügen Sie die Buchungsfunktionalität in pages/rooms/[id].js hinzu, indem Sie ein Buchungsformular hinzufügen:

JS


6.2. Anzeigen und Stornieren von Buchungen

Erstellen Sie pages/my-bookings.js um Buchungen anzuzeigen und zu stornieren:

JS


7. Bereitstellung auf Vercel

  1. Installieren Sie die Vercel CLI:
Bash

  1. Deployen Sie Ihre Next.js-App mit:
Bash


Befolgen Sie die Anweisungen, um Ihre App auf Vercel bereitzustellen. Nach der Bereitstellung wird Ihre App unter einer öffentlichen URL live sein.

8. Fazit

In diesem Tutorial haben Sie eine Bookit-App mit Next.js für das Frontend und Back4App als Backend erstellt. Sie haben die Benutzeranmeldung, das Raummanagement und die Buchungsfunktionalität implementiert. Schließlich haben Sie die App auf Vercel, bereitgestellt. Sie können die App jetzt mit zusätzlichen Funktionen wie Suche, Zahlungsintegration oder Benachrichtigungen erweitern.