https://github.com/adimyy/natours
An awesome tour booking web app written in NodeJS, Express, MongoDB 🗽
https://github.com/adimyy/natours
expressjs jwt mongodb mongoose nodejs stripe
Last synced: 2 months ago
JSON representation
An awesome tour booking web app written in NodeJS, Express, MongoDB 🗽
- Host: GitHub
- URL: https://github.com/adimyy/natours
- Owner: ADIMYY
- Created: 2024-09-16T11:26:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-21T13:54:59.000Z (over 1 year ago)
- Last Synced: 2026-01-03T14:23:59.909Z (6 months ago)
- Topics: expressjs, jwt, mongodb, mongoose, nodejs, stripe
- Language: JavaScript
- Homepage:
- Size: 148 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Natours
Key Features 📝
Authentication and Authorization
- Sign up, Log in, Logout, Update, and reset password.
User profile
- Update username, photo, email, password, and other information
- A user can be either a regular user or an admin or a lead guide or a guide.
- When a user signs up, that user by default regular user.
Tour
- Manage booking, check tour map, check users' reviews and rating
- Tours can be created by an admin user or a lead-guide.
- Tours can be seen by every user.
- Tours can be updated by an admin user or a lead guide.
- Tours can be deleted by an admin user or a lead-guide.
Bookings
- Only regular users can book tours (make a payment).
- Regular users can not book the same tour twice.
- Regular users can see all the tours they have booked.
- An admin user or a lead guide can see every booking on the app.
- An admin user or a lead guide can delete any booking.
- An admin user or a lead guide can create a booking (manually, without payment).
- An admin user or a lead guide can not create a booking for the same user twice.
- An admin user or a lead guide can edit any booking.
Reviews
- Only regular users can write reviews for tours that they have booked.
- All users can see the reviews of each tour.
- Regular users can edit and delete their own reviews.
- Regular users can not review the same tour twice.
- An admin can delete any review.
Favorite Tours
- A regular user can add any of their booked tours to their list of favorite tours.
- A regular user can remove a tour from their list of favorite tours.
- A regular user can not add a tour to their list of favorite tours when it is already a favorite.
Credit card Payment
Check Natours API Documentation for more info.
Build With 🏗️
- NodeJs - JS runtime environment
- Express - The web framework used
- Mongoose - Object Data Modelling (ODM) library
- MongoDB Atlas - Cloud database service
- JSON Web Token - Security token
- Postman - API testing