Introduction

In this section, the purpose of this course will be explained, alongside its general structure.

Welcome to NestJS Unleashed! In this section, I will explain the problem this course aims to address, its purpose, and finally its structure.

Problem

Node.js is a backend JavaScript runtime environment that gained high popularity in recent years, and one of the reasons for it is because it allows for using the same programming language (JavaScript) for both frontend and backend development, amongst others. Even then, if used by itself, it is a quite "crude" environment for development as you are responsible for

  • Libraries configuration

  • Code architecture

  • Routing

  • Among other things...

To develop robust systems, in a professional manner, it may not be so interesting to write code in pure Node.js. Many times, you may find yourself "reinventing the wheel" when there are already established and refined solutions. In summary, this is the problem that this course aims to solve.

Purpose

The main intention of this course is to show how to harness most of the potential of the NestJS framework, which arose quickly in recent years. We'll do so while focusing on elegant architectural solutions, while learning everything in an intuitive and pleasing manner.

Here, all the lessons will be taught using a completely practical approach, and we will study theory only when necessary to solve problems that arise during our journey. The course is also incremental, meaning that we will start developing our backend system from scratch and improve it with more functionalities and upgrades along the course.

An important note, the approach to the architecture and code design used here is akin to a proposal. There is no completely perfect and flawless way of developing a system, even more so a complex one. That being said, feel free and even invited to make changes to the code whenever you see fit. It is also a great way to develop your abilities and critical sense about the code quality.

Structure

We will be developing the backend system of an online shop. Everything we'll study will be oriented to the creation of this application. Its business rules and therefore UML diagram are simple, even though there are interesting relationships and cardinalities. The focus, however, will not be the business logic itself, but the solutions we'll implement to make it come to life. The following diagram is very similar (with minor changes) to one found in the Java course (PT-BR) by Professor Nélio Alves, due to its simplicity but also completeness.

The full course comprises the following modules

  • Core module - Backend Development with NestJS

  • Improvements/Tips module

  • Extra module 1 - Authentication/Authorization

  • Extra module 2 - Exception Filters

  • Extra module 3 - OpenAPI Specification

  • Extra module 4 - File Management

  • Extra module 5 - Advanced Querying

  • Extra module 6 - Automated Testing

  • Parallel module - Prisma

The Journey Begins

With all this said, I hope you have a great experience developing this project with me and improve yourself in many ways as a backend developer. Thank you for taking this course, and best wishes.

Last updated