Node.js Express MongoDB Project

Active link here ==> https://natours-project-production.up.railway.app/

This project is part of the Node.js Express MongoDB Bootcamp course on Udemy by my favourite online teacher Jonas Schmedtmann

Tech stack

  • Java Script
  • Node.js
  • MongoDB
  • Express
  • Mongoose
  • Pug templates

About the Project

The project is a Tour Web Application where you can find exiting tours all over the world, buy them and participate. It covers the following topics and features:

  • Building an advanced and complete RESTful API with Express.js
  • User authentication and authorization using JWT (JSON Web Tokens)
  • Perform CRUD operations with MongoDB using Mongoose, exploring all advanced features of the library.
  • User management: registration, login, and password reset
  • Error handling and validation
  • Server-side rendering with pug templates
  • Deployment and production-ready setup with Heroku

Additional features

  • Handle credit card payments using Stripe integration.
  • Explore email sending functionality and learn how to handle file uploads.
  • Ensure security through encryption, sanitization, rate limiting, and other best practices.

Project architecture

  • MVC

Learning Objectives

Throughout the course and this project, I have gained knowledge and experience with the following concepts:

  • Setting up a Node.js project structure
  • Creating and configuring an Express.js server
  • Designing and implementing RESTful APIs
  • Using MongoDB as a NoSQL database
  • Implementing user authentication and authorization
  • Writing efficient and reusable code ( best practices)
  • Handling errors and validating user input
  • Deploying the application to a production environment