Skip to content

This project is a comprehensive guide that enables you to enhance your web development skills by learning Node.js from start to finish.

Notifications You must be signed in to change notification settings

mces58/NodejsFundamentals

Repository files navigation



GitHub language count GitHub repo size GitHub last commit GitHub forks GitHub Repo stars GitHub User's stars GitHub followers

Node.js: The New Way of Web Development

The world of web development is constantly changing, and keeping up with the advancements is crucial. That's why we have prepared this Node.js course to provide you with everything you need to create creative and impressive projects in the field of web development.

This course will teach you Node.js in detail from start to finish. First, you will get an introduction to the fundamentals of Node.js, and then you will learn how to integrate external packages using NPM (Node Package Manager). You will explore developing dynamic websites using Express.js.

While working with MySQL and Sequelize for database operations, you will also gain knowledge in authentication and authorization. Additionally, you will learn important topics like data validation and RESTful API design and discover how to access NoSQL databases using Node.js with MongoDB and Mongoose.

This course is suitable for both beginners in the Node.js world and experienced developers. By working on practical examples and real-world projects, you will have the opportunity to apply what you have learned immediately. You will also address critical topics such as token-based authentication, error handling, and logging, learning how to develop your products in a more secure and stable manner.

Start building your own web applications with the Node.js Course and elevate yourself in the world of web development. Explore the limitless potential that Node.js offers and bring your creative projects to life.


To download the JavaScript dependencies you want to use in your project, you can use the 'npm install' command.

  1. πŸ’‘ BASICS
  2. Node.js Fundamentals: In this section, we focus on the foundational building blocks of Node.js. We begin with a brief introduction to the course and then provide detailed information about the global object of Node.js, known as the 'global object.' By covering the topic of Node modules, you will learn how to make your code modular. Additionally, by exploring the concepts of HTTP request-response, you will gain an understanding of how Node.js operates in web applications. This section serves as an excellent starting point for your journey to understand and utilize the fundamental building blocks of Node.js. πŸ“š


  3. πŸ‘Ύ NPM
  4. NPM (Node Package Manager): In this section, you will explore NPM, a vital component of the Node.js ecosystem, in detail. First, you'll learn what a package.json file is and how to create one. Then, you'll discover how to create and manage NPM packages, as well as understand the difference between global and local packages. You will also learn how to optimize your web applications with Webpack configuration, making your projects more efficient. Additionally, in this section, you will see hands-on examples of how to harness the power of NPM through a sample project. πŸ“š


  5. 🌟 EXPRESS.JS
  6. Express.js: This section provides a quick introduction to web development. We begin with a brief introduction to Express.js and then teach you how to set up an Express application. We explore how to streamline the development process using tools like Nodemon. We explain how to handle requests and responses with the concept of middleware, and then demonstrate how to create dynamic web pages using routing. You'll learn how to use body-parser for data exchange and create modular structures with express-router. Additionally, in this section, you will learn how to manage error pages, send HTML pages, and serve static files. This will equip you with the fundamental skills needed to build powerful web applications. πŸ“š


  7. πŸ’£ TEMPLATE ENGINE
  8. Template Engine Section: In this section, we focus on the concept of template engines, particularly delving into EJS and Pug (formerly known as Jade) template engines in detail. We begin by learning what template engines are, how they work, and how to use them. Throughout the course, we will primarily concentrate on EJS template engine, teaching you how to create dynamic web pages with this powerful tool. πŸ“š


  9. 🌊 MYSQL DB
  10. MySQL Database Operations: In this section, we dive deep into MySQL database operations. We start by establishing a connection to the MySQL database and learning how to access it. Additionally, we explain how to organize database operations using the MVC (Model-View-Controller) model. We progress by teaching you how to perform CRUD (Create-Read-Update-Delete) operations, enabling you to create, read, update, and delete data in the database. We cover the topic of managing product-category relationships and instruct you on using asynchronous programming (async-await). Furthermore, in this section, you will take your database operations to the next level by preparing an administration panel, enhancing your application development experience. πŸ“š


  11. β˜€ SEQUELIZE
  12. Sequelize Section: In this section, we take database operations to the next level with Sequelize. Firstly, you'll learn how to create tables and add data using Sequelize. We'll also explore how to apply database operations in your application, focusing on the 'product' model. We address the management of product-category relationships and explain important concepts like 'lazy loading' and 'eager loading' to teach you how to retrieve data and handle relational data efficiently. Additionally, you will learn operations such as generating URL-friendly text (slugify) and implementing pagination in this section. πŸ“š


    Authentication and Authorization: In this section, we focus on strengthening your application with a strong emphasis on security. We begin by introducing the concepts of authentication and authorization. Then, you will learn how to create a user model and walk through the step-by-step process of handling registration. We delve into topics like cookie and session management to teach you secure session management techniques. You will also learn how to prevent CSRF (Cross-Site Request Forgery) attacks and implement password reset processes with practical examples. Furthermore, you'll discover how to create a role model, enabling you to authorize users and resources effectively. πŸ“š


  13. πŸ”’ VALIDATION
  14. Validation Section: This section emphasizes the importance of data validation and error management. Firstly, we address model validation, teaching you how to ensure the correctness of incoming data. Then, we explore error handling strategies. Validation enhances the security and stability of your application, while error management improves the user experience and helps you anticipate potential issues in advance. πŸ“š


  15. πŸ’― REST API
  16. REST API Section: This section focuses on the fundamental concept of REST API, which is crucial for developing modern web applications. We begin by introducing the concept of REST API, and then you will learn how to retrieve data using HTTP GET requests. Next, we cover HTTP POST requests for sending and saving data from users. By diving deep into data validation, you will understand how to validate incoming data. We explore the use of HTTP PUT requests to update existing data and HTTP DELETE requests for data deletion. Furthermore, we discuss how to organize API routes using Express Router and manage the CORS (Cross-Origin Resource Sharing) concept. This will equip you with the skills to create powerful and scalable RESTful APIs. πŸ“š


  17. πŸƒ MONGO DB
  18. MongoDB and Mongoose Section: This section focuses on the NoSQL database MongoDB and the Mongoose library. We start by teaching you how to connect to the MongoDB database and then delve into defining data models using Mongoose schemas. By creating a category model, you will learn how to store and retrieve data in MongoDB. We explore data selection, querying with query operators, updating, and deleting data in-depth. Furthermore, in this section, we guide you through the process of developing an API for category data step by step, teaching you how your application can interact with the MongoDB database. πŸ“š


    Mongoose Relationships Section: This section focuses on understanding database relationships with Mongoose. We begin with an introduction to understand how relationships work in Mongoose. Then, we delve into the concept of 'reference relationships,' teaching you how to establish relationships between different collections. Additionally, we cover the topic of 'embedded documents,' enabling you to learn how to store data as nested documents and how to utilize these structures, thereby equipping you to manage more complex database structures with Mongoose. πŸ“š


    Token-Based Authentication Section: This section focuses on secure authentication methods. We start with a brief introduction and then proceed to learn how to establish a relationship with the user model. We cover the authentication of logged-in users (auth user) and how to secure their identities. By examining token verification processes, you will learn how to validate the authenticity of incoming requests. Additionally, we address role-based authorization (role-auth), exploring methods for access control for different user groups. πŸ“š


    Error Handling and Logging Section: This section focuses on error management and logging in your application. We begin by learning how to create a custom error middleware for error handling. Then, we explore the concept of 'express-async-error' to handle errors that occur during asynchronous processes. By examining error logging methods, you will learn how to track and analyze errors in your application. We also cover how to store errors in MongoDB. You will discover how to manage environment variables and configuration, enabling you to switch between different environments. We also address important topics like handling unexpected exceptions (uncaught exceptions) and module extraction in this section. πŸ“š