barakadanny / Natours

Natours is a full-stack web application built with Node.js, Express.js, and MongoDB. It provides users with the ability to register, login, navigate tours, review tours, book tours, and make payments.

Home Page:https://documenter.getpostman.com/view/23491723/2s93sc5D5A#intro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Natours

An awesome README template to jumpstart your projects!
Api doc »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Future Features
  5. Contributing
  6. License
  7. Contact
  8. Faq

About The Project

Natours is a full-stack web application built with Node.js, Express.js, and MongoDB. It provides users with the ability to register, login, navigate tours, review tours, book tours, and make payments. This documentation aims to guide you through the installation, configuration, and usage of the Natours application.

(back to top)

Built With

List of technologies and dependecies used in the project.

(back to top)

Getting Started

Before proceeding with the installation, ensure that your system meets the following requirements:

  • Node.js v14 or higher
  • npm
  • MongoDB

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • npm
    npm install npm@latest -g

Installation

  1. Get a look on the api documentation to get a better understanding of the application.

  2. Clone the repo

    git clone https://github.com/barakadanny/Natours-Nodejs-Express.git
  3. Install NPM packages

    npm install
  4. Create a config.env file in the root directory and add the following environment variables:

     NODE_ENV=development
     PORT=3000
     DATABASE_PASSWORD= ***
     DATABASE= ***
    
     JWT_SECRET= ***
     JWT_EXPIRES_IN=90d
     JWT_COOKIE_EXPIRES_IN=90
    
     EMAIL_USERNAME= ***
     EMAIL_PASSWORD= ***
     EMAIL_HOST=sandbox.smtp.mailtrap.io
     EMAIL_PORT=25
  5. Start the server for development:

    npm run dev

    or for production:

    npm run prod

(back to top)

Usage

Natours provides various functionalities/features to users through its backend API. Let's explore of them.

  • Authentication
    • Register
    • Login
    • Logout
    • Forgot Password
    • Reset Password
    • Update Password
    • Update User Data
    • Delete User
  • Tours
    • Get All Tours
    • Get Tour
    • Create Tour
    • Update Tour
    • Delete Tour
    • Get Tour Stats
    • Get Monthly Plan
    • Get Tours Within
    • Get Distances
  • Bookings
    • Get All Bookings
    • Get Booking
    • Create Booking
    • Update Booking
    • Delete Booking
  • Reviews
    • Get All Reviews
    • Get Review
    • Create Review
    • Update Review
    • Delete Review

Note: The API documentation is available here for all the endpoints.

(back to top)

❓ Future Features

  • Save tours to wishlist
  • Offer discount coupons
  • Add more payment methods
  • Add more authentication methods (e.g. Google, Facebook, etc.)
  • Add social media login options
  • Add social media sharing options

Have a feature in mind? open issues.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

👨‍💻 Baraka Danny

(back to top)

(back to top)

❓ FAQ

  1. What is the purpose of this project?

This project is a part of my portfolio. It was created to showcase a full backend API built with Node.js, Express, MongoDB, and Mongoose.

  1. Can I contribute to this project?

Yes, you can. Just fork the repository, make your changes and create a pull request. Your pull request will be reviewed and merged if it adds value to the project.

  1. Who can I talk to if I have questions?

If you have any questions regarding this project, feel free to reach out to me at barakadan421@gmail.com

  1. I found a bug/issue, what do I do?

Report it in the issues section and I will look into it.

(back to top)

About

Natours is a full-stack web application built with Node.js, Express.js, and MongoDB. It provides users with the ability to register, login, navigate tours, review tours, book tours, and make payments.

https://documenter.getpostman.com/view/23491723/2s93sc5D5A#intro


Languages

Language:Pug 29.0%Language:CSS 27.7%Language:JavaScript 26.8%Language:HTML 16.5%