Skip to content

RESTful API & full-stack project built with Node.js, Express, MongoDB & Mongoose. Includes CRUD operations, JWT auth, user roles, reviews, image uploads, geospatial queries, Stripe payments, security best practices, MVC architecture & production deployment

Notifications You must be signed in to change notification settings

Shivam56291/natours-node-learning-project

Repository files navigation

Natours | Nature Tours API & Web App 🌲⛰️

Node.js Express MongoDB Pug Stripe

Live Demo

Note: This is a Learning Project demonstrating a complete full-stack workflow, from API design to server-side rendering and payment integration.

Natours is a modern application for booking customizable nature tours. It serves as a showcase for advanced Node.js concepts including authentication, security, payments, and data modeling.


✨ Features at a Glance

🔒 Security & Auth

  • JWT Authentication: Secure stateless authentication using JSON Web Tokens.
  • Login & Signup: Premium glassmorphism UI for user access.
  • Security: Rate limiting, brute-force protection, and data sanitization (XSS, NoSQL injection).

💳 Payments

  • Stripe Integration: Secure credit card processing using Stripe Checkout.
  • Dynamic Bookings: Automatic booking creation upon successful payment confirmation.

🗺️ Visualization

  • Interactive Maps: Leaflet.js integration to show tour locations.
  • Premium UI: Custom animations (zoomInSlow, slideInUp), glassmorphism cards, and gradient reveals.

🏗️ Backend Architecture

  • MVC Pattern: Organized structure with Models, Views, and Controllers.
  • API Features: Advanced filtering, sorting, pagination, and aliasing.
  • Error Handling: Centralized error controller for global error management.

📚 Documentation

Detailed documentation is available in the docs/ folder:

Doc Description
🚀 Getting Started Setup, Config, and Running the app.
🏗️ Architecture Deep dive into Models, MVC, and API structure.
👨‍💻 Author About the creator.

🛠️ Tech Stack

This project implements the following technologies defined in package.json:

  • Core: Node.js, Express
  • Database: MongoDB, Mongoose
  • Frontend: Pug, Parcel (Bundler)
  • Payments: Stripe
  • Utils: Nodemailer (Email), Multer (File Uploads), Sharp (Image Processing)
  • Security: Helmet, HPP, XSS-Clean, BcryptJS

🚀 Quick Start

  1. Clone & Install:
    git clone https://github.com/Shivam56291/natours-node-learning-project.git
    npm install
  2. Configure: Create config.env (See Getting Started).
  3. Run:
    npm run start:dev

Built by Shivam, BCA 5th Sem

About

RESTful API & full-stack project built with Node.js, Express, MongoDB & Mongoose. Includes CRUD operations, JWT auth, user roles, reviews, image uploads, geospatial queries, Stripe payments, security best practices, MVC architecture & production deployment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published