NestJS Zero to Hero - Modern TypeScript Back-end Development

8h 44m 8s
English
Paid

Course description

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.

Read more about the course

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.

Requirements:
  • Having a basic understanding of JavaScript and/or NodeJS
  • Having basic knowledge of TypeScript is recommended, but not required
Who this course is for:
  • Intermediate JavaScript developers who want to dive into back-end development
  • Any developers willing to apply TypeScript on the back-end
  • Developers eager to learn how to develop performant, secure and production-ready REST APIs following best practices
  • Developers who want to learn how to deploy their application to the cloud (Amazon Web Services)
  • Developers who want to follow building a practical, real-world application from zero to production

What you'll 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

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 116 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online NestJS Zero to Hero - Modern TypeScript Back-end Development

0:00
/
#1: Welcome to the course!

All Course Lessons (116)

#Lesson TitleDurationAccess
1
Welcome to the course! Demo
01:12
2
Installing the NestJS CLI
00:58
3
(Optional) Installing VSCode and Extensions
02:56
4
Project Overview
05:18
5
Creating our project via the NestJS CLI
02:05
6
NestJS Project Structure
06:37
7
Introduction to NestJS Modules
02:55
8
Creating a Tasks Module
03:33
9
Introduction to NestJS Controllers
03:47
10
Creating at Tasks Controller
03:38
11
Introduction to NestJS Providers and Services
05:04
12
Creating a Tasks Service
05:55
13
Feature: Getting All Tasks
07:31
14
Creating a Postman Collection
01:44
15
Defining a Task Model
05:02
16
Feature: Creating a Task (Part 1 - Controller)
05:00
17
Feature: Creating a Task (Part 2 - Service)
06:37
18
Intro to Data Transfer Objects (DTO)
05:37
19
Implementing CreateTaskDto
04:59
20
Feature: Getting a Task by ID
05:44
21
Challenge: Deleting a Task
00:53
22
Solution: Deleting a Task
04:24
23
Challenge: Update Task Status
01:20
24
Solution: Update Task Status
05:28
25
Feature: Searching and Filtering
08:50
26
Introduction to NestJS Pipes
04:15
27
ValidationPipe: Creating a Task
04:32
28
Error Handling: Getting a non-existing Task
04:17
29
Error Handling: Deleting a non-existing Task
01:10
30
Validation: Update Task Status
03:28
31
Challenge: Validating Task Filtering and Search
02:43
32
Introduction to Persistence
00:31
33
Running PostgreSQL via Docker
04:03
34
Setting up pgAdmin
01:46
35
Creating a Database using pgAdmin
00:55
36
Introduction to TypeORM
02:58
37
Setting up a Database Connection
04:30
38
Creating a Task Entity
03:52
39
Active Record VS Data Mapper Patterns
03:41
40
Creating a Tasks Repository
03:34
41
Refactoring for Tasks Service
03:45
42
Persistence: Getting a Task by ID
08:34
43
Persistence: Creating a Task
07:32
44
(Challenge) Persistence: Deleting a Task
01:23
45
(Solution) Persistence: Deleting a Task
04:59
46
Persistence: Update Task Status
02:41
47
Small Change Needed
01:41
48
Persistence: Getting All Tasks
12:23
49
Intro to Authentication and Authorization
01:13
50
Setting up AuthModule, User Entity and User Repository
05:06
51
Feature: Signing Up
08:27
52
Validation: Credentials and Password Strength
04:13
53
Error Handling: Username Conflicts
06:43
54
Securely Storing Passwords
07:23
55
Password Hashing With Bcrypt
04:26
56
Feature: Signing In
04:43
57
Intro to JSON Web Tokens (JWT)
05:55
58
Setting up the JWT Module and Passport.js
03:35
59
Signing a JWT Token on Sign In (Authentication)
07:09
60
Implementing JWT Validation
11:39
61
Custom @GetUser Decorator
03:15
62
Guarding the Tasks Routes
02:01
63
Tasks and Users - Database Relation
03:59
64
Make Users Own Tasks
04:37
65
Serialize User Data
03:40
66
Restricting Getting All Tasks
03:31
67
BUG FIX: Getting All Tasks
02:35
68
Restricting Getting a Task By ID
03:51
69
Restricting Status Updates
00:51
70
Restricting Deleting A Task
01:24
71
THANK YOU! (+ Promotion)
01:34
72
Introduction to Logging
02:54
73
Implementing Logs in our NestJS app
14:55
74
Introduction to Configuration
02:11
75
Quick Intro to Environment Variables
03:51
76
Setting up ConfigModule
09:19
77
TypeORM Configuration
09:38
78
Config Schema Validation
06:39
79
JWT Secret Configuration
04:08
80
Front-end Application
05:36
81
Signing up to Heroku
01:07
82
Creating a Heroku Application
01:00
83
Installing the the Heroku CLI
01:12
84
Postgres on Heroku
03:00
85
Changes in our NestJS App
05:12
86
Deploying NestJS to Heroku
09:49
87
Deploying Front-end to GitHub Pages
08:21
88
Unit Testing Crash Course: Basics
01:47
89
Unit Testing Crash Course: First Tests
06:39
90
IMPORTANT: Fixing import paths
01:37
91
Testing TasksService - Part 1
18:44
92
Testing TasksService - Part 2
07:30
93
GraphQL + MongoDB: Section Introduction
01:06
94
Project Overview: School Management
02:39
95
Robo 3T - Connecting to the MongoDB Database
01:15
96
Project setup
02:05
97
Ensure NestJS 7 Installation
00:56
98
Installing GraphQL Dependencies
03:03
99
Creating the Lesson Module
01:27
100
Defining the Lesson GraphQL Type
03:14
101
Creating the Lesson Resolver
04:04
102
Using the GraphQL Playground
03:45
103
Persistence: TypeORM, MongoDB and our Lesson Entity
06:35
104
LessonService and createLesson method
08:06
105
Create Lesson GraphQL Mutation
05:02
106
getLesson GraphQL Query with MongoDB
03:41
107
Validation: Create Lesson Input
07:16
108
Challenge: Get All Lessons GraphQL Query
04:08
109
Creating the Student Module
01:45
110
Challenge: Defining the Student Entity
02:54
111
Challenge: Create Student Mutation
10:29
112
Challenge: Get All Students GraphQL Query
02:38
113
Challenge: Get Student by ID Query
02:45
114
Assign Students To Lesson GraphQL Mutation
10:27
115
Improvement: Assign Students Upon Lesson Creation
03:15
116
Resolve "students" Field in Lesson
08:14

Unlock unlimited learning

Get instant access to all 115 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

NestJS Masterclass - NodeJS Framework Backend Development

NestJS Masterclass - NodeJS Framework Backend Development

Sources: udemy
NestJS is a framework for Node.js designed for creating efficient, reliable, and scalable server-side applications. Its architecture is inspired by Angular...
24 hours 26 minutes 30 seconds
Vue 3, Nuxt.js and NestJS: A Rapid Guide - Advanced

Vue 3, Nuxt.js and NestJS: A Rapid Guide - Advanced

Sources: udemy
Learn how to create an Ambassador App using Vue 3, NuxtJS and NestJS. We will build 3 frontend apps Admin, Ambassador and Checkout and they will consume a big N
7 hours 37 minutes 36 seconds
NestJS GraphQL - Code-first approach

NestJS GraphQL - Code-first approach

Sources: learn.nestjs.com
Get up to speed with the GraphQL Code-first approach with NestJS. Master GraphQL fundamentals and essentials concepts behind creating your own enterprise-grade GraphQL applicati...
1 hour 55 minutes 15 seconds
NestJs - Build Modern APIs in NestJs with Unit Testing

NestJs - Build Modern APIs in NestJs with Unit Testing

Sources: udemy
If you want to create a powerful API using the modern backend framework NestJS or learn API unit testing, welcome to the Ultimate NestJS course! NestJS is a...
9 hours 19 minutes 27 seconds
NestJS Advanced Concepts

NestJS Advanced Concepts

Sources: learn.nestjs.com
Prepare for an in-depth guided course & walk-through of Authentication & Authorization for NestJS applications from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core T...
1 hour 59 minutes 39 seconds