Skip to content

Natours is a NodeJS tour booking site with authentication, tour management, user profiles, and credit card payments. Built with Express, Mongoose, MongoDB Atlas, and Pug.

Notifications You must be signed in to change notification settings

Arbaz86/Natours-API

Repository files navigation


Natours
Natours

Natours is an awesome tour booking site built on top of NodeJS. The site offers a variety of features that allow users to search and book tours, manage their bookings, and update their profile. Authentication and authorization features are also included, allowing users to log in and log out. The tour page allows users to check out tours on a map and see user reviews and ratings. Users can pay for tours using a credit card.

DemoKey FeaturesDemonstrationHow To UseAPI UsageBuild WithTo-doInstallationFuture UpdatesAcknowledgement

Deployed Version

Live demo (Feel free to visit) 👉 : https://natours-api-z82r.onrender.com/

Key Features

  • Authentication and Authorization
    • Login, Signup and logout
  • Tour
    • Manage booking, check tours map, check users' reviews and rating
  • User profile
    • Update username, photo, email, and password
  • Credit card Payment

Demonstration

Home Page :

natoursHomePageonline-video-cutt

Tour Details :

tourOverviewonline-video-cutterc

Payment Process :

paymentprocess-1-ycnhrceamp4-7fW

Booked Tours :

rsz_bookedtours

User Profile :

rsz_userprofile

Admin Profile :

rsz_adminprofile

How To Use

Book a tour

  • Login to the site
  • Search for tours that you want to book
  • Book a tour
  • Proceed to the payment checkout page
  • Enter the card details (Test Mood):
    - Card No. : 4242 4242 4242 4242
    - Expiry date: 02 / 25
    - CVV: 121
    
  • Finished!

Manage your booking

  • Check the tour you have booked in "Manage Booking" page in your user settings. You'll be automatically redirected to this page after you have completed the booking.

Update your profile

  • You can update your own username, profile photo, email and password.

API Usage

Before using the API, you need to set the variables in Postman depending on your environment (development or production). Simply add:

- {{URL}} with your hostname as value (Eg. http://localhost:8080 or http://www.example.com)
- {{password}} with your user password as value.

Check Natours API Documentation for more info.

API Features:

Tours List 👉 https://lgope-natours.onrender.com/api/v1/tours

Tours State 👉 https://lgope-natours.onrender.com/api/v1/tours/tour-stats

Get Top 5 Cheap Tours 👉 https://lgope-natours.onrender.com/api/v1/tours/top-5-cheap

Get Tours Within Radius 👉 https://lgope-natours.onrender.com/api/v1/tours/tours-within/200/center/34.098453,-118.096327/unit/mi

Build With

To-do

  • Review and rating
    • Allow user to add a review directly at the website after they have taken a tour
  • Advanced authentication features
    • login with refresh token, two-factor authentication
  • And More ! There's always room for improvement!

Installation

You can fork the app or you can git-clone the app into your local machine. Once done that, please install all the dependencies by running

$ npm i
set your env variables
$ npm run watch:js
$ npm run build:js
$ npm run dev (for development)
$ npm run start:prod (for production)
$ npm run debug (for debug)
$ npm start

Future Updates

  • Improve overall UX/UI and fix bugs
  • Featured Tours
  • Recently Viewed Tours
  • And More ! There's always room for improvement!

Acknowledgement

About

Natours is a NodeJS tour booking site with authentication, tour management, user profiles, and credit card payments. Built with Express, Mongoose, MongoDB Atlas, and Pug.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published