NestJS Zero to Hero - Modern TypeScript Back-end Development

Develop and deploy enterprise back-end applications following best practices using Node.js and TypeScript

4.70 (9313 reviews)
Udemy
platform
English
language
Web Development
category
NestJS Zero to Hero - Modern TypeScript Back-end Development
123,681
students
9 hours
content
Mar 2024
last update
$99.99
regular price

What you will learn

Becoming familiar with the NestJS framework and its components

Designing and developing REST APIs performing CRUD operations

Authentication and Authorization for back-end applications

Using TypeORM for database interaction

Security best practices, password hashing and storing sensitive information

Persisting data using a database

Deploying back-end applications at a production-ready state to Amazon Web Services

Writing clean, maintainable code in-line with industry standards

Utilising the NestJS Command Line Interface (CLI)

Using Postman for testing back-end services

Using pgAdmin as an interface tool to manage PostgreSQL databases

Implement efficient logging in a back-end application

Environment-based configuration management and environment variables

Implementing data validation and using Pipes

Guarding endpoints for authorized users using Guards

Modelling entities for the persistence layer

TypeScript best practices

Handling asynchronous operations using async-await

Using Data Transfer Objects (DTO)

Hands-on experience with JSON Web Tokens (JWT)

Unit testing NestJS applications

Using GraphQL with NestJS

Database persistence with MongoDB

Why take this course?

NestJS is a Node.js back-end development framework built upon Express, leveraging the power of TypeScript.

NestJS leverages the incredible popularity and robustness of JavaScript as a language and Node.js as a technology. It is inspired by common libraries and frameworks such as Angular, React and Vue which improve developer productivity and experience.

Even considering the amount of superb libraries, helpers and tools that exist for server-side Node.js, none of them effectively solve the main problem - the architecture of an application.

NestJS provides an out-of-the-box application architecture which allows developers and teams to create highly testable, scalable, loosely coupled and easily maintainable applications.


Recently, the NestJS framework is gaining extreme popularity due to its incredible features;

  • Leverages TypeScript - strongly typed language which is a super-set of JavaScript

  • Simple to use, easy to learn and easy to master

  • Powerful Command Line Interface (CLI) tool that boosts productivity and ease of development

  • Detailed, well-maintained documentation

  • Active codebase development and maintenance

  • Open-source (MIT license)

  • Supports dozens nest-specific modules that help you easily integrate with common technologies and concepts such as TypeORM, Mongoose, GraphQL, Logging, Validation, Caching, Websockets and much more

  • Easy of unit-testing applications

  • Made for Monoliths and Micro-services (entire section in the documentation regarding the Microservice type of a NestJS application, as well as techniques and recipes).

In this course I am going to guide you through the process of planning, developing and deploying a fully-featured back-end application, based on my experience developing and maintaining systems that support dozens of millions of concurrent users at scale.

Content

Introduction to NestJS & Pre-requisites

Welcome to the course!
What is NestJS?
Installing Node.js and NPM
Installing the NestJS CLI
Installing Postman
(Optional) Installing Visual Studio Code

REST API - Task Management Application (CRUD)

Project Overview: Task Management Application
Creating a project via the CLI and an introduction to a NestJS project structure
Introduction to NestJS Modules
Creating a Tasks Module
Introduction to NestJS Controllers
Creating a Tasks Controller
Introduction to NestJS Providers and Services
Creating a Tasks Service
Feature: Getting all Tasks
Defining a Task Model
Feature: Creating a Task (Part 1: Service)
Feature: Creating a Task (Part 2: Controller)
Introduction to Data Transfer Objects (DTOs)
Creating a CreateTaskDto
Feature: Getting a Task by ID
Challenge: Deleting a Task
Solution: Deleting a Task
Challenge: Updating a Task's Status
Solution: Updating a Task's Status
Feature: Searching and Filtering Tasks
Summary Quiz

Validation and Error Handling

Introduction to NestJS Pipes
ValidationPipe: Creating a Task
Error Handling: Getting a non-existing Task
Error Handling: Deleting a non-existing Task
Custom Pipe: Validating the Task Status
ValidationPipe: Task Filtering and Search
Summary Quiz
Source Code - Validation and Error Handling

Data Persistence - PostgreSQL & TypeORM

Installing PostgreSQL and pgAdmin
Using pgAdmin to create a Database
Introduction to Object Relational Mapping and TypeORM
IMPORTANT: TypeORM Entities Configuration
Connecting NestJS to a database using TypeORM
Creating a Task Entity
Creating a Task Repository
Preparation for Task Service Refactoring
Persistence: Getting a Task by ID
Persistence: Creating a Task
Challenge: Delete Task Persistence
Solution: Delete Task Persistence
Persistence: Updating Task Status
IMPORTANT: Before Persistence of Getting Tasks
Persistence: Getting Tasks (with or without filters)
Summary Quiz
Source Code - Data Persistence

(Part 1) Authentication - Setting up JWT/Passport.js

Setting up AuthModule, User Entity and UserRepository
Feature: Sign Up
Validation: AuthCredentialsDto, password strength
Error Handling: Duplicate Usernames
Security: Hashing Passwords & Using Salts
Feature: Validating Password - Sign In
Introduction to JSON Web Tokens (JWT)
Setting up the JWT Module and Passport.js
Signing a JWT Token Upon Authentication
Setting up the JWT Strategy for Authorization
Custom @GetUser() Decorator
Guarding the Tasks Routes (TasksController)
Summary Quiz

(Part 2) Authorization - Task Ownership

Tasks and Users - Database Relation
Authorization: Creating a Task For User
Authorization: Getting Tasks For User
Authorization: Getting a User's Task
Authorization: Updating a User's Task Status
Authorization: Deleting a User's Task
Source Code - Authentication & Authorization

(Bonus) Logging

Introduction to Logging
Applying logging in our application

(Bonus) Pro-Production: Configuration

Windows: Environment Variables
Introduction to Configuration
Configuration Management Set-up
Applying Configuration - Codebase (Part 1)
Source Code - Configuration

(Bonus) Front-end Application

Front-end Application Set-up (Development Mode)

(Bonus) Deployment - Amazon Web Services (AWS)

Signing up to Amazon Web Services and signing up
Amazon S3: Setting up a Bucket (Front-end Hosting)
Enabling CORS from the S3 Front-end Application
IMPORTANT: bcryptjs NPM package
TIP: Before Deploying to Production
Pre-production package.json Adjustments
IMPORTANT: Change in TypeORM Configuration
Deploying NestJS to Elastic Beanstalk
Uploading the Front-end App to S3
Source Code - Deployment

(Bonus) Testing a NestJS Application

Unit Testing Crash Course - Basics
Unit Testing Crash Course - First Tests
Testing TasksService - Part 1 - getTasks
Testing TasksService - Part 2 - getTaskById
(Challenge) Testing TasksService - Part 3 - createTask
Testing TasksService - Part 4 - deleteTask
(Challenge) Testing TasksService - Part 5 - updateTaskStatus
Testing UserRepository
Testing User Entity
Testing JwtStrategy
Testing Final Words
Source Code - Testing

Bonus Material

HTTPS - Secure Communication
Proceeding with NestJS & Back-end Development
Domain Names for AWS Applications
Elastic Beanstalk CLI

Screenshots

NestJS Zero to Hero - Modern TypeScript Back-end Development - Screenshot_01NestJS Zero to Hero - Modern TypeScript Back-end Development - Screenshot_02NestJS Zero to Hero - Modern TypeScript Back-end Development - Screenshot_03NestJS Zero to Hero - Modern TypeScript Back-end Development - Screenshot_04

Our review

🏆 **Course Overview:** The course has received a global rating of 4.68, with all recent reviews pointing towards a comprehensive and engaging learning experience for NestJS, a popular Node.js framework. The majority of the feedback highlights the clarity and practicality of the course content, with many learners successfully using the knowledge gained to build and improve their own projects. 📚 **Pros:** - ✅ **Comprehensive Introduction:** The course is well-structured, providing a solid foundation for those new to NestJS and TypeORM. It's particularly praised for its suitability for "lazy learners" who prefer video tutorials over reading documentation. - ✅ **Real-World Application:** Many learners found the course valuable for real-world scenarios, with some successfully leveraging it for job interviews and larger projects. - ✅ **Engaging Instruction:** Ariel, the course instructor, is commended for his engaging teaching style and clear explanations, making complex topics understandable. - ✅ **Coverage of Essential Topics:** The syllabus is extensive, covering necessary knowledge and including a variety of features within NestJS. - ✅ **Great for Angular Familiar Learners:** NestJS is likened to Angular in many ways, making it easier for those with Angular experience to pick up NestJS. - ✅ **Encourages Independent Learning:** Some learners appreciate the course's encouragement to read documentation and solve problems independently, which can be a valuable skill. ✍️ **Cons:** - ❌ **Outdated Content:** A notable concern across several reviews is that the course content is not fully up-to-date with the latest versions of NestJS and TypeORM. This has led to some confusion and additional work for learners, as they often need to update code examples themselves. - ❌ **Technical Issues:** Some learners encountered bugs due to outdated tutorials, particularly in sections related to deploying a React frontend application, where the provided code did not function correctly and required extra effort to fix. - ❌ **Support and Q&A Reliance:** A few reviews mention that despite some issues, solutions could often be found in the Q&A section of the course platform. - ❌ **Expectation of Updates:** There is a general expectation for the course content to be updated regularly given the fast-paced nature of web development. 🔄 **Recommendations:** For anyone considering this course, it's highly recommended if you are looking to understand the fundamentals of NestJS and TypeORM. However, be prepared to cross-reference or update certain sections with the latest documentation or community support forums to ensure a smooth learning experience. If you're already familiar with Angular and web development concepts, this course can be particularly beneficial due to its similarities with Angular. In summary, while the course is excellent in terms of content and teaching style, staying aware of updates to the frameworks discussed is crucial for maintaining a current understanding of NestJS development practices.

Coupons

DateDiscountStatus
6/12/201940% OFF
expired
6/22/2019100% OFF
expired
6/24/2019100% OFF
expired
6/24/2019100% OFF
expired
7/7/2019100% OFF
expired
7/8/2019100% OFF
expired
3/19/2020100% OFF
expired
4/24/2020100% OFF
expired
5/1/2020100% OFF
expired
5/30/2020100% OFF
expired
11/28/2020100% OFF
expired
6/4/2021100% OFF
expired
9/2/2023100% OFF
expired
9/2/2023100% OFF
expired
9/2/2023100% OFF
expired
3/5/2024100% OFF
expired
3/9/2024100% OFF
expired
3/9/2024100% OFF
expired

Charts

Price

NestJS Zero to Hero - Modern TypeScript Back-end Development - Price chart

Rating

NestJS Zero to Hero - Modern TypeScript Back-end Development - Ratings chart

Enrollment distribution

NestJS Zero to Hero - Modern TypeScript Back-end Development - Distribution chart
2053219
udemy ID
11/27/2018
course created date
6/12/2019
course indexed date
Bot
course submited by