Welcome to server-side development with NodeJS, Express and MongoDB. This is the final course of the specialization. In this course, we will be concentrating mainly on the server-side. We will look at how we use the Node runtime to develop server-side business logic layer using JavaScript. Then we'll look at the Express framework which enables us to quickly develop a server-side application. We will also look at MongoDB as a document storage for our persistent data in the database. Before you embark on this course, let me emphasize that you should have a very good working knowledge of JavaScript. I expect that you have deep enough knowledge of ES 5 version of JavaScript and at least familiar with ES 2015 plus version of JavaScript, specifically the use of arrow functions. Also preferably, you should have completed Angular/React module of this specialization. So that you would have an understanding of the picture from the front end perspective, you know what kind of data would be required on the front end in order to construct the user interface for our front-end application. This understanding helps you to enable to see how our Node and Express application supports the delivery of the data required by the front-end. Also how the REST API, that is developed in this course will be useful to support the front-end of our entire application. Now, before we embark on this story, I would emphasize that Web development and design can be looked at from two perspectives. First of course, the design aspect of the design and development where we are looking at UI/UX design, visual design, prototyping, colors, animation and graphics and so on. This is beyond the scope of this course. In this course, we are looking at developing hardcore skills for actual design, deployment and development of their publications including the server-side application. In this course, we are concentrating on the server-side development using NodeJS, Express and MongoDB. This is a picture that we have been seeing over the courses of this specialization where I delineate the difference between the front-end and the backend. So, in this course we are now moving towards the backend, the business logic and the data access layer of this entire full-stack picture. So, having understood what this course is concentrating upon, let's look at the actual structure of this course. This course itself covers NodeJS and Node modules as explained earlier. We'll also look at the Express framework for developing server-side applications, again based upon NodeJS. We'll look at MongoDB as the persistent layer in our entire full stack, and we'll look at how MongoDB supports the storage of data in the form of documents. We'll also look at backend as a service and look at a few examples of pre-packaged backends that will enable us to quickly set up the server-side for our entire full stack story. Having said that, let's look briefly at the structure of the four modules in this course. Each module corresponds to one week of work for this course. In the first module, we'll look at the big picture view of full stack web development. Then in case you don't know Git, I will give you a quick introduction to Git. If you already know Git, you can skip this and then proceed on to the introduction to Node.js and NPM. Where we'll look at the purpose of Node.js and how this runtime helps us to develop server-side applications. Then we'll look at node modules and how they are structured and how they are useful, the different kinds of node modules. Then this will take us on to actually examining node and how we can scaffold out a very simple server-side using the HTTP core module of node. Then, we will move on to examine the express framework and learn how to scaffold out a server-side application. Then this will take you all the way to the very first assignment of this course. The second module primarily concentrates on the data storage side of the story, in particular MongoDB. We'll quickly look at how we can use the express generator to quickly scaffold out a REST API based server. Then we'll move on to examining MongoDB, understand what MongoDB is and how it supports the storage retrieval and manipulation of data. We'll look at how MongoDB can be accessed from our node application. This is essential because from within our express application, we will be accessing the MongoDB in order to store and retrieve data. Then we'll look at the Mongoose object data model, and understand how Mongoose enables us to define schema and model to structure our applications. Then we will look at how we will scaffold out a complete REST API server with Express and also being able to interact with the MongoDB server from our express application. This should take you all the way to the second assignment in this course. The third module concentrates mainly on user authentication. How we can allow users to register themselves, authenticate themselves and then restrict access to certain operations to only registered or authenticated users or look at different category of users who can do different kinds of operations on the server-side through that client side application. We'll look at basic authentication which is a very simple way of authenticating your client side. We will move on to look at cookies and how cookies can be used for user authentication. Then also look at express sessions again based upon signed cookies. We'll also look at user authentication with the passport module. The passport module consolidates and provides a comprehensive way of providing various ways of doing user authentication. In particular, we will concentrate on local authentication using passport first. We'll look at mongoose population and how we can include parts of one document into another document and then automatically populate this information into a document before delivering it to the user. This should take you all the way up to the third assignment in this course. The final module concentrates on finishing up with the understanding of how we develop a server-side application and also quickly review backend as a service. So, in this module we'll look at secure communication using HTTPS. I will briefly review cryptography and security in the context of how it is useful to set up an HTTPS server. We'll look at how we can upload files using a Node module. We'll also look at cross-origin resource sharing or costs. What is it? Why should we be aware of it? How we can set up our express server to support costs? Then, we'll look at OAuth and third party authentication and how we can use OAuth for doing user authentication. In particular, we'll look at an example of using Facebook for authenticating our users. Finally, review backend as a service. That should take you all the way to the final assignment in this course. I hope you have a lot of fun going through the various modules in this course and develop a strong understanding of server-side development using Node, Express and MongoDB. Of course, we would be covering to a reasonable extent so that we can quickly get started up and running, but there are more issues that you can learn beyond this course. So, I would strongly encourage you to continue learning further about both the server-side development as well as front-end development that you've seen in the previous courses of this specialization. Wish you good luck in completing this course, and I hope you enjoy your journey through the various topics that we cover in this course.