This project was created as part of the Node.js Bootcamp by Jonas Schmedtmann's on Udemy. It demonstrates the concepts and techniques learned throughout the course.
Visit the link -> https://natours-012.onrender.com/
- Authentication using email & password, jwt cookie
- Marking the locations of tours on the map
- Forgot/Reset password using reset link in email
- Payment method using Stripe
- Update user details/password
- Overview page - Browse all tours
- Tour Details page - Detailed tour information
- Login / Signup / Account Recovery pages - User authentication
- Profile - User profile management
- Tour Booking - Book tours with Stripe payment
- My Reviews Page - Shows all reviews submitted by the user
- My Bookings Page - Shows all bookings made by the user
- Admin Dashboard – Manage Users/Reviews/Bookings pages
- Forgot/Reset Password Pages
- Backend- Node/Express, Database- MongoDB/Mongoose
- Payment- Stripe
- Mail- MailTrap (Development) & SendGrid (Production) [Free version]
- Image Upload- Multer
- Map- Mapbox
- Backend deployed in Render
{
"name": "natours",
"version": "1.0.0",
"description": "node,express and mongoDB",
"main": "app.js",
"scripts": {
"start": "node server.js",
"start:dev": "set NODE_ENV=development&& nodemon server.js",
"start:prod": "set NODE_ENV=production&& nodemon server.js",
"debug": "ndb server.js",
"watch:js": "esbuild ./public/js/index.js --bundle --outfile=./public/js/bundle.js --watch",
"build:js": "esbuild ./public/js/index.js --bundle --minify --outfile=./public/js/bundle.js"
},
"author": "karthik",
"license": "ISC",
"dependencies": {
"axios": "^1.12.2",
"bcryptjs": "^3.0.2",
"compression": "^1.8.1",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"dotenv": "^17.2.1",
"express": "^4.18.2",
"express-mongo-sanitize": "^2.2.0",
"express-rate-limit": "^8.1.0",
"helmet": "^8.1.0",
"hpp": "^0.2.3",
"html-to-text": "^9.0.5",
"jsonwebtoken": "^9.0.2",
"mongoose": "^8.16.5",
"morgan": "^1.10.1",
"multer": "^2.0.2",
"nodemailer": "^7.0.6",
"pug": "^3.0.3",
"sharp": "^0.34.4",
"slugify": "^1.6.6",
"stripe": "^19.1.0",
"validator": "^13.15.15",
"xss-clean": "^0.1.4"
},
"devDependencies": {
"esbuild": "^0.25.10",
"eslint": "^8.57.1",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^5.5.3",
"eslint-plugin-react": "^7.37.5",
"prettier": "^3.6.2"
},
"engines": {
"node": "22.x"
}
}
- To make this website mobile responsive
- To add a carousel of top tours on the overview page
- To Add a dashboard of tours about tour stats and monthly plans for admin, guide, and lead-guide
- To Add the functionality of finding tours using coordinates and distances
- To Add functionality of changing roles to admin, guide or lead-guide
- To Implement missing pages