Touren API
Die Tours API ist eine robuste, erholsame Oberfläche, mit der Benutzer umfassende Funktionen für die Verwaltung von Touren bieten sollen. Benutzer können auf eine Vielzahl von Funktionen zugreifen, einschließlich der Anzeige der verfügbaren Touren, der Buchung durch das Stripe Payment-Gateway, die Bewertung von Touren nach der Vervollständigung und die Verwendung von Filtern, Paginierung und Sortiermechanismen. Die API unterstützt zusätzliche Funktionen wie Erstellung und Verwaltung des Benutzerkontos, die Ergänzung und Bearbeitung von Tour und die Überprüfung der Verwaltung. Insbesondere umfasst die Implementierung Redis Caching, um Latenz und Geschwindigkeit zu optimieren. Sicherheitsmaßnahmen werden durch starke Verschlüsselung, Kompressionstechniken und Ratenlimitierungen erhöht. Darüber hinaus integriert das Projekt die Versorgungsmethoden für die E -Mail -Kommunikation mit NodeMailer (SENDGRID) und erleichtert Datei -Uploads in externe Speicherlösungen wie Cloudinary oder ImageKit.
- Das vollständige Projekt wird auf Render eingesetzt und kann hier zugegriffen werden.
- Hinweis: Die API wird derzeit in einem kostenlosen Renderplan gehostet und kann zum ersten Mal einige Sekunden dauern.
Schlüsselmerkmale -
- Funktionalität : Ansicht und Buchtouren, bewerten abgeschlossene Touren, Filtern und Sortieren, Verwalten von Benutzerkonten und Verwalten von Bewertungen.
- Leistungsoptimierung : Redis -Caching wird verwendet, um Latenz und Geschwindigkeit zu verbessern.
- Sicherheitsmaßnahmen : Starke Verschlüsselungs-, Komprimierungs- und Ratenlimitmechanismen werden implementiert.
- Integrationen von Drittanbietern : Verwenden Sie Stripe für die Zahlungsverarbeitung, NodeMailer (sendInblue) für die E-Mail-Kommunikation und Cloudinary/ImageKit für externe Dateispeicher.
- Umfassende Merkmale : Unterstützt Pagination, Sortier- und Filtertourenbetrieb.
Inhaltsverzeichnis
- Voraussetzungen
- Installation
- Verwendung
- API -Dokumentation
- Gebaut mit
- Schwierigkeiten konfrontiert
- Zukünftiger Umfang
- Lizenz
Voraussetzungen
- In Ihrem System sollte Node.js installiert sein. Wenn nicht, können Sie es von hier aus installieren.
- Sie sollten ein MongoDB -Atlas -Konto haben. Wenn nicht, können Sie eine von hier aus erstellen.
- Sie sollten ein Streifenkonto haben. Wenn nicht, können Sie eine von hier aus erstellen.
- Sie sollten ein SendInblue -Konto haben. Wenn nicht, können Sie eine von hier aus erstellen.
- Sie sollten ein ImageKit -Konto haben. Wenn nicht, können Sie eine von hier aus erstellen.
- Zum Testen können Sie Postman- oder Schlaflosigkeit oder Thunderclient -Erweiterung verwenden, die auf VSCODE verfügbar sind.
- Für das Zwischenspeichern sollten Sie ein Redis -Konto haben. In diesem Projekt verwende ich Redis von Render.com. Wenn nicht, können Sie eine von hier aus erstellen.
Installation
- Klonen Sie das Repository
git clone https://github.com/varshil-shah/tours-api.git
- Installieren Sie NPM -Pakete
npm install or yarn install
- Erstellen Sie eine .EnV -Datei im Stammverzeichnis, wie die Datei .env.example, und fügen Sie die Umgebungsvariablen hinzu
- Führen Sie die Anwendung aus
Verwendung
- Hilft Ihnen beim Erstellen, Lesen, Aktualisieren und Löschen von Touren, Benutzern, Bewertungen und Buchungen.
- Bietet Ihnen die Möglichkeit, auch Touren und andere Modelle zu filtern, zu sortieren und zu paginieren.
- Integrieren Sie die API in eine beliebige Frontend -Anwendung und verwenden Sie unsere API, um eine voll funktionsfähige Touren -Website zu erstellen.
- Verwalten Sie Ihre Benutzer, Touren, Bewertungen und Buchungen problemlos.
Gebaut mit
- Node.js - node.js® ist eine JavaScript -Laufzeit, die auf Chrome's V8 JavaScript Engine basiert.
- Express.js - Schnell, nicht optimiert, minimalistisches Web -Framework für Node.js.
- MONGODB - MONGODB ist ein allgemeiner, dokumentbasierter, verteilter Datenbank, der für moderne Anwendungsentwickler und für die Cloud -Ära erstellt wurde.
- Mongoose - Elegante MongoDB -Objektmodellierung für Node.js.
- Redis - Redis ist eine Open Source (BSD -lizenzierte), In -Memory -Datenstrukturspeicher, die als Datenbank, Cache und Message Broker verwendet wird.
- JWT - JSON -Web -Token sind eine offene Methode zur RFC 7519 -Methode für Branchenstandards zur sicheren Darstellung von Ansprüchen zwischen zwei Parteien.
Schwierigkeiten konfrontiert
- Der schwierigste Teil des Projekts war die Implementierung der Datei -Upload -Funktion. Ich musste die Dokumentation von ImageKit durchgehen, um zu verstehen, wie Dateien auf ihre Server hochgeladen werden. Ich musste auch die Dokumentation von Multer und scharf durchgehen, um zu verstehen, wie Dateien auf den lokalen Server hochgeladen werden.
- Der zweitgrößte Teil des Projekts war die Implementierung der Zahlungsfunktion. Ich musste die Dokumentation von Stripe durchgehen, um zu verstehen, wie die Zahlungsfunktion in der Anwendung implementiert werden kann.
- Der dritthäufigste Teil des Projekts war die Implementierung der Filter-, Sortierungs- und Paginierungsfunktion. Ich musste die Dokumentation von Mongoose durchlaufen, um zu verstehen, wie die Filter-, Sortierungs- und Paginierungsfunktion in der Anwendung implementiert werden kann.
Zukünftiger Umfang
- Fügen Sie der API eine Frontend -Anwendung hinzu.
- Implementieren Sie Zugangs- und Aktualisieren von Token für eine bessere Sicherheit.
- Implementieren Sie maximale Anmeldeversuche und Sperrmechanismus.
- Fügen Sie eine Funktion hinzu, um Touren nach Ort zu suchen.
Lizenz
MIT -Lizenz
Anerkennung
Vielen Dank an Jonas Schmedtmann für seinen erstaunlichen Kurs auf Node.js, Express.js, Mongodb und Mongoose.