NestJS Unleashed: Develop Robust and Maintainable Backends
Harness the potential of the Nest framework while maintaining a robust and scalable architecture
Description
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 fashion, 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, and it may become increasingly harder to maintain the system over time. 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 class diagram is very similar (with minor changes) to one found in the Java course (also in Udemy) by Professor Nélio Alves, due to its simplicity but also completeness.
The Core module explores these topics:
Project creation
Project configuration (ergonomy/DX)
Resource generation and setup (entity/module/controller/service/etc)
Validation (100% DTO-based)
Database creation (with Docker)
TypeORM Integration
Configuration (Environment variables)
And more
The full course comprises the following modules:
Core module - Backend Development with NestJS (Available)
Improvements/Tips module (Available)
Extra module 1 - Authentication/Authorization (Available)
Extra module 2 - Exception Filters (Available)
Extra module 3 - OpenAPI Specification (Available)
Extra module 4 - File Management (Available)
Extra module 5 - Advanced Querying (Available)
Extra module 6 - Automated Testing (Coming soon)
Parallel module - Prisma (Coming soon)
And lastly, I would just like to remember that, throughout the entire course, architecture is always paramount.
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. Should you acquire it, see you there. Best wishes.
Promo video credits:
Animations/Video editing - Fluxo Digital + EngajeEasy
Music - AudioCoffee
What You Will Learn!
- Effectively master the tooling of the NestJS framework
- Develop a (somewhat) real-world REST API from scratch
- Create a robust and versatile architecture
- Increment the same application with new features and improvements since the beginning
Who Should Attend!
- Nodejs developers that want a better way to architect their applications
- Beginner NestJS developers that want better mastery over the framework
- NestJS developers that want to further improve their code organization and architecture
- Developers that want more than to just learn specific features: to develop robust, scalable and maintainable backend systems