Skip to content

An web application written in NodeJS, Express, MongoDB :octocat: 🌏 💚

License

Notifications You must be signed in to change notification settings

rupesh1310/NATOURS

Repository files navigation


Natours
Natours

An awesome tour booking site built on top of NodeJS.

Key Features of the ApplicationDemonstrationHow To UseAPI UsageBuild WithTo-doInstallationKnown BugsFuture Updates

✨ Key Features of the Application

  • Authentication and Authorization
    • Login 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 / 22
    - CVV: 222
    
  • 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://127.0.0.1:3000 or http://www.example.com)
- {{password}} with your user password as value.

Check Natours API Documentation for more info.

🔨 Build With

📌 To-do

  • Review and rating
    • Allow user to add a review directly at the website after they have taken a tour
  • Booking
    • Prevent duplicate bookings after user has booked that exact tour, implement favourite tours
  • Advanced authentication features
    • Signup, confirm user email, 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
Setting up ESLint and Prettier in VS Code 👇
$ npm i eslint prettier eslint-config-prettier eslint-plugin-prettier eslint-config-airbnb eslint-plugin-node
eslint-plugin-import eslint-plugin-jsx-a11y  eslint-plugin-react --save-dev

⚡ Future Updates

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

️💚️ Contributors 💚


A.RUPESH