Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mahamudm90/natours
An awesome tour booking web app written in NodeJS, Express, MongoDB π½
https://github.com/mahamudm90/natours
compression cors css3 expressjs helmet javascript json-web-token mongodb-atlas mongosse multer nodejs stripe-api validator
Last synced: about 1 month ago
JSON representation
An awesome tour booking web app written in NodeJS, Express, MongoDB π½
- Host: GitHub
- URL: https://github.com/mahamudm90/natours
- Owner: MahamudM90
- Created: 2022-11-05T02:50:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-30T16:31:50.000Z (almost 2 years ago)
- Last Synced: 2023-12-29T10:27:57.636Z (12 months ago)
- Topics: compression, cors, css3, expressjs, helmet, javascript, json-web-token, mongodb-atlas, mongosse, multer, nodejs, stripe-api, validator
- Language: JavaScript
- Homepage: https://tourswebsiteusa.herokuapp.com/
- Size: 37 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Natours Application
Built using modern technologies: node.js, express. mongoDB, mongoose and friends.
NodeJS.Website
π»πNatours ππ»### All Tours
![image](./website/principal.png)
### Tour
![image](./website/tour.png)### Setting User
![image](./website/user.png)### Login
![image](./website/login.png)### Reserve 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 Num: 4242 4242 4242 4242
+ Expiry date: 01 / 32
+ CVV: 108
```
* Finished!## 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)
```Check [Natours API Documentation](https://documenter.getpostman.com/view/13422360/UVsJw6nC) for more info.
API Features:
Tours List π https://tourswebsiteusa.herokuapp.com/api/v1/tours
Tours State π https://tourswebsiteusa.herokuapp.com/api/v1/tours/tour-stats
Get Top 5 Cheap Tours π https://tourswebsiteusa.herokuapp.com/api/v1/tours/top-5-cheap
Get Tours Within Radius π https://tourswebsiteusa.herokuapp.com/api/v1/tours/tours-within/200/center/34.1117545,-118.113491/unit/mi
## Deployment
The website is deployed with git into heroku. Below are the steps taken:
```
git init
git add -A
git commit -m "Commit message"
heroku login
heroku create
heroku config:set CONFIG_KEY=CONFIG_VALUE
git push heroku master
heroku open
```## Build With
* [NodeJS](https://nodejs.org/en/) - JS runtime environment
* [Express](http://expressjs.com/) - The web framework used
* [Mongoose](https://mongoosejs.com/) - Object Data Modelling (ODM) library
* [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) - Cloud database service
* [Pug](https://pugjs.org/api/getting-started.html) - High performance template engine
* [JSON Web Token](https://jwt.io/) - Security token
* [ParcelJS](https://parceljs.org/) - Blazing fast, zero configuration web application bundler
* [Stripe](https://stripe.com/) - Online payment API
* [Postman](https://www.getpostman.com/) - API testing
* [Mailtrap](https://mailtrap.io/) & [Sendgrid](https://sendgrid.com/) - Email delivery platform
* [Heroku](https://www.heroku.com/) - Cloud platform## 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
```
## About Bugs
This project is the still in modification, repair and improvement, if you want to help me, you can send me a message to the email [email protected]. Thank you!
## Acknowledgement**This project is part of the online course I've taken at Udemy. Thanks to Jonas Schmedtmann for creating this course! Link to the course: [Node.js, Express, MongoDB & More: The Complete Bootcamp 2022](https://www.udemy.com/course/nodejs-express-mongodb-bootcamp/)**