We may earn an affiliate commission when you visit our partners.
Course image
Stephen Grider

Authentication/Authorization? Covered.  Automated Testing? Yep, it's here.   Production Deployment? Of course.

Congratulations. You've found the complete guide on how to build enterprise-ready apps with NestJS.

Read more

Authentication/Authorization? Covered.  Automated Testing? Yep, it's here.   Production Deployment? Of course.

Congratulations. You've found the complete guide on how to build enterprise-ready apps with NestJS.

NestJS is a backend framework used to create scalable and reliable APIs.  It is a "battery-included" framework; it includes tools to handle just about every possible use case, from data persistence, to validation, to config management, to testing, and much, much more.  This course will help you master Nest. By the time you complete this course, you will have the confidence to build any app you can imagine.

Throughout this course you will build a series of apps with growing complexity.  We use as few libraries and tools as possible.  Instead, you will write many custom systems to better understand how every piece of Nest works together.  Each application you build includes discussion on data modeling and persistence. We will first save records in a simple file-based data store (built from scratch) and eventually work our way up to saving data in a production-grade Postgres instance.

Testing is a fundamental topic in Nest. A tremendous amount of functionality in Nest is dedicated to making sure your project is easy to test. This course follows Nest's testing recommendations, and you will write both integration and unit tests to ensure your project is working as expected. Although testing can sometimes be confusing and boring, I have put special care into making sure the tests we write are expressive, fast, and effective.  You will be able to use this knowledge on your own projects, even those that don't use Nest.

Typescript is used throughout this course to make sure we are writing clean and correct code. Don't know Typescript? Not a problem.  A free appendix is included at the end of the course to get you up to speed on Typescript.  Once you're familiar with it, Typescript will help you catch errors and bugs in your code before you even run it.  If you've never used Typescript before you are in for a treat :)

Everything in this course is designed to make your learning process as easy as possible.

  • At every step, I will teach you what Nest is doing internally, and help you understand how to twist and bend Nest to better suit your application's needs. 

  • Every single video in the course has an attached ZIP file containing up-to-date code, just in case you ever get stuck.

  • Full-time teaching assistants are standing by to help answer your questions

  • Access private live chat server is included. Live help whenever you need it.

Here's a partial list of the topics included in this course:

  • Securely deploy your app to production

  • Write automated integration and unit tests to make sure your code is working

  • Build an authentication system from scratch to log users in

  • Allow users to perform certain actions with a permissions system

  • Store and retrieve data with complex queries using TypeORM

  • Understand how TypeORM handles data relationships

  • Write declarative code using property, method, and parameter decorators

  • Master the concept of dependency injection to write reusable code

  • Implement automatic validation of incoming requests

  • Format outgoing response data with a custom DTO system

  • Handle incoming requests and outgoing responses using Guards and Interceptors

  • Segment your code into reusable Nest Modules

  • Add structure to your database using migrations

I had a tough time learning NestJS.  There are a tremendous number of outdated tutorials around it, the documentation is sometimes unclear, and Nest itself is just plain hard to understand.  I made this course to save you time and money - a course to show you exactly what you need to know about every topic in Nest.  You will find learning Nest to be a delightful experience and pick up a tremendous amount of knowledge along the way.

Sign up today and join me in mastering NestJS.

Enroll now

What's inside

Learning objectives

  • Deploy a feature-complete app to production
  • Build authentication and permissions systems from scratch
  • Write integration and unit tests to ensure your code is working
  • Automatically validate data included with incoming requests
  • Use an api client to manually test your app
  • Apply structure to your code with typescript
  • Make your code more reusable and testable with dependency injection
  • Tie different types of data together with typeorm relationships
  • Get a behind-the-scenes understanding of nestjs
  • Use guards to prevent unauthorized users from gaining access to sensitive data
  • Understand nest's special request-response cycle
  • Model your app's data using typeorm entities
  • Use decorators to dramatically simplify your code
  • Show more
  • Show less

Syllabus

Get Started Here!
How to Get Help
Join Our Community!
Course Resources
Read more
The Basics of Nest
Project Setup
TypeScript Configuration
Creating a Controller
Starting Up a Nest App
File Naming Conventions
Routing Decorators
Generating Projects with the Nest CLI
App Setup
Using the Nest CLI to Generate Files
More on Generating Files
Adding Routing Logic
[Optional] Postman Setup
[Optional] VSCode REST Client Extension
Validating Request Data with Pipes
Accessing Request Data with Decorators
Installing Extra Required Libraries
Using Pipes for Validation
Adding Validation Rules
Behind the Scenes of Validation
How Type Info is Preserved
Nest Architecture: Services and Repositories
Services and Repositories
Implementing a Repository
Reading and Writing to a Storage File
Implementing a Service
Manual Testing of the Controller
Reporting Errors with Exceptions
Understanding Inversion of Control
Introduction to Dependency Injection
Refactoring to Use Dependency Injection
Few More Notes on DI
Nest Architecture: Organizing Code with Modules
Project Overview
Generating a Few Files
Setting Up DI Between Modules
More on DI Between Modules
Consuming Multiple Modules
Modules Wrapup
Big Project Time!
App Overview
API Design
Module Design!
Generating Modules, Controllers, and Services
Persisting Data with TypeORM
Persistent Data with Nest
Setting Up a Database Connection
Creating an Entity and Repository
Viewing a DB's Contents
Understanding TypeORM Decorators
One Quick Note on Repositories
A Few Extra Routes
Setting Up Body Validation
Manual Route Testing
Creating and Saving User Data
Creating and Saving a User
Quick Breather and Review
More on Create vs Save
Required Update for find and findOne Methods
Querying for Data
Updating Data
Removing Users
Finding and Filtering Records
Removing Records
Updating Records
A Few Notes on Exceptions
Custom Data Serialization
Excluding Response Properties
Solution to Serialization
How to Build Interceptors
Serialization in the Interceptor
Customizing the Interceptor's DTO
Wrapping the Interceptor in a Decorator
Controller-Wide Serialization
A Bit of Type Safety Around Serialize
Authentication From Scratch
Authentication Overview
Reminder on Service Setup
Implementing Signup Functionality
[Optional] Understanding Password Hashing
Salting and Hashing the Password
Creating a User
Handling User Sign In
Setting up Sessions
Changing and Fetching Session Data
Signing in a User
Getting the Current User
Signing Out a User
Two Automation Tools
Custom Param Decorators
Why a Decorator and Interceptor
Communicating from Interceptor to Decorator
Small Fix for CurrentUserInterceptor
Connecting an Interceptor to Dependency Injection
Globally Scoped Interceptors
Preventing Access with Authentication Guards

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation for programming with Javascript and Node
Teaches tools that are highly relevant to technology and software development
Topics covered include authorization, authentication, automated testing, and deployment
Taught by Stephen Grider, who is recognized for their work in software development
Developing knowledge of a Javascript framework enables diverse applications such as web, mobile, and enterprise projects

Save this course

Save NestJS: The Complete Developer's Guide to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in NestJS: The Complete Developer's Guide with these activities:
Review key concepts
Refresh your understanding of the fundamental concepts of authentication, authorization, TypeScript, and Nest.js to prepare for a smooth learning experience.
Browse courses on Authentication
Show steps
  • Read introductory articles or documentation on Nest.js.
  • Review TypeScript basics, including data types, control flow, and object-oriented programming.
  • Revisit the concepts of authentication and authorization, focusing on token-based approaches.
Join a Nest.js study group
Engage with other Nest.js learners by joining a study group, sharing knowledge, discussing concepts, and troubleshooting together.
Show steps
  • Search for online Nest.js communities or forums.
  • Join a study group or discussion thread.
  • Ask questions, provide answers, and collaborate with others.
Attend Nest.js workshops
Enhance your Nest.js skills by attending in-person or online workshops led by experienced instructors, covering advanced topics and best practices.
Show steps
  • Find upcoming Nest.js workshops or training sessions.
  • Enroll in a workshop that aligns with your learning goals.
  • Attend the workshop and actively participate in discussions and exercises.
One other activity
Expand to see all activities and additional details
Show all four activities
Participate in Nest.js hackathons
Challenge yourself and showcase your Nest.js skills by participating in hackathons, working under time constraints to solve complex problems and create innovative solutions.
Show steps
  • Look for upcoming Nest.js hackathons or challenges.
  • Form a team or work individually.
  • Develop a solution within the hackathon's timeline.
  • Submit your project and compete for prizes or recognition.

Career center

Learners who complete NestJS: The Complete Developer's Guide will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers in Web Development, including full-stack, front-end, and back-end development, build and maintain web applications. They use multiple programming languages to write code that creates the app's functionality and user experience. With experience building enterprise web apps with NestJS, you would certainly be prepared for a role such as this. This course does not teach front-end development, so you will need some experience in Javascript and likely other frameworks.
Web Developer
Web Developers build and maintain websites. They use programming language to bring website design to life, creating everything from web pages to online storefronts. Some of these Developers specialize in either the front-end or back-end of a website. NestJS is a back-end framework, which means this course will help you build strong skills in handling the back-end aspect of web development. Once you combine these skills with front-end knowledge, you will be well-qualified for this position.
Full-Stack Developer
Full Stack Developers can build both the front-end and back-end of a website or web application, which means they can build the entire site from scratch. They must be proficient in a wide range of programming languages and technologies, but NestJS skills fit quite nicely into the back-end. Anyone hoping to become a full Stack Developer will benefit from the skills taught in this course.
Computer Programmer
Computer Programmers write, modify, and test code that is used to create software applications. Programmers can work with a variety of programming languages. NestJS is a framework for Javascript, so if Javascript is a part of your programming repertoire, this course can help you strengthen your programming and software development skills.
Network Architect
Network Architects design, implement, and maintain computer networks. They ensure that networks meet the needs of an organization, taking into account security, reliability, and performance. Coursework in this program will help Network Architects understand the principles of network architecture and how to apply them to real-world scenarios.
Web Architect
Web Architects design and implement website architectures. They work with web designers to create a website's structure and layout, and they work with web developers to implement the website's code. This course can help Web Architects learn about the NestJS framework, which can be used to build high-performance, scalable web applications.
System Analyst
Systems Analysts study an organization's current business processes and procedures to define the systems and procedures it needs to meet its objectives. Systems Analysts may design new systems, modify existing systems, or integrate new systems into existing ones. This course may be helpful for Systems Analysts who want to gain a specialized knowledge in the NestJS framework.
Data Scientist
Data Scientists use data to solve business problems. They work with data engineers and other data professionals to collect, clean, and analyze data. This course may be helpful for Data Scientists who want to learn about the NestJS framework, which can be used to build data-intensive applications.
Data Engineer
Data Engineers design, build, and maintain data storage systems. They work with data scientists and other data professionals to ensure that data is available, accessible, and secure. This course may be helpful for Data Engineers who want to learn about the NestJS framework, which can be used to build data-intensive applications.
Database Developer
Database Developers create and maintain databases, which are used to store and organize data. They work with data architects to design databases and with database administrators to implement and maintain them. This course may be helpful for Database Developers who want to learn about the NestJS framework, which can be used to build data-intensive applications.
Software Engineer
Software Engineers apply engineering principles to the design, development, and maintenance of software systems. They work with software developers to ensure that software systems are reliable, efficient, and maintainable. This course may be helpful for Software Engineers who want to learn about the NestJS framework, which can be used to build high-performance, scalable web applications.
Technology Consultant
Technology Consultants provide advice and guidance to organizations on how to use technology to meet their business needs. They work with organizations to assess their needs, develop technology solutions, and implement those solutions. This course may be helpful for Technology Consultants who want to learn about the NestJS framework, which can be used to build high-performance, scalable web applications.
Security Analyst
Security Analysts identify and mitigate security risks to an organization's computer systems and networks. They work with security engineers to implement and maintain security measures. This course may be helpful for Security Analysts who want to learn about the NestJS framework, which can be used to build secure web applications.
Solutions Architect
Solutions Architects design and implement technology solutions to meet the needs of an organization. They work with business stakeholders to understand their needs and with technical teams to implement solutions. This course may be helpful for Solutions Architects who want to learn about the NestJS framework, which can be used to build high-performance, scalable web applications.
Software Architect
Software Architects design and implement software systems. They work with software developers to ensure that software systems meet the needs of an organization. This course may be helpful for Software Architects who want to learn about the NestJS framework, which can be used to build high-performance, scalable web applications.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in NestJS: The Complete Developer's Guide.
Is essential for anyone looking to build scalable and reliable microservices. It covers the essential patterns and concepts of microservices architecture, and provides practical guidance on how to implement them in your own projects.
Provides a comprehensive overview of microservices architecture, and covers the key concepts and principles involved in designing and building microservices systems. It valuable resource for anyone looking to learn more about microservices.
Provides a comprehensive overview of RESTful API design, and covers the key principles and best practices involved in creating RESTful APIs. It valuable resource for anyone looking to learn more about RESTful APIs.
Provides a comprehensive guide to React. It covers everything from the basics to advanced topics such as functional programming, Hooks, and state management. It valuable resource for developers who want to build interactive and user-friendly React applications.
Provides a comprehensive overview of the good parts of JavaScript, and covers the key concepts and principles involved in writing high-quality JavaScript code. It valuable resource for anyone looking to improve their JavaScript development skills.
Provides a comprehensive overview of clean code, and covers the key principles and concepts involved in writing high-quality and maintainable code. It valuable resource for anyone looking to improve their software development skills.
Provides a comprehensive overview of software testing, and covers the key principles and concepts involved in testing software applications. It valuable resource for anyone looking to improve their software testing skills.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser