An awesome README template to jumpstart your projects!
Api doc »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
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.
List of technologies and dependecies used in the project.
- Node.js
- Express.js
- MongoDB
- Mongoose
- Pug
- Stripe
- Mailtrap
- bcryptjs
- express-mongo-sanitize
- helmet
- hpp
- xss-clean
- express-rate-limit
- nodemailer
- jsonwebtoken
- slugify
Before proceeding with the installation, ensure that your system meets the following requirements:
- Node.js v14 or higher
- npm
- MongoDB
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
-
Get a look on the api documentation to get a better understanding of the application.
-
Clone the repo
git clone https://github.com/barakadanny/Natours-Nodejs-Express.git
-
Install NPM packages
npm install
-
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
-
Start the server for development:
npm run dev
or for production:
npm run prod
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.
- 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.
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
👨💻 Baraka Danny
- GitHub: @barakadan
- LinkedIn: danny baraka
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.
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.
If you have any questions regarding this project, feel free to reach out to me at barakadan421@gmail.com
Report it in the issues section and I will look into it.