Nest (NestJS) is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with and fully supports TypeScript (yet still enables developers to code in pure JavaScript), and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).Under the hood, Nest makes use of robust HTTP Server frameworks like Express (the default) and optionally can be configured to use Fastify as well!Nest provides a level of abstraction above these common Node.js frameworks (Express/Fastify), but also exposes their APIs directly to the developer. This gives developers the freedom to use the myriad of third-party modules which are available for the underlying platform.PhilosophyIn recent years, thanks to Node.js, JavaScript has become the "lingua franca" of the web for both front and backend applications. This has given rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the creation of fast, testable, and extensible front-end applications. However, while plenty of superb libraries, helpers, and tools exist for Node (and server-side JavaScript), none of them effectively solve the main problem of - Architecture.Nest provides an out-of-the-box application architecture that allows developers and teams to create highly testable, scalable, loosely coupled, and easily maintainable applications. The architecture is heavily inspired by Angular.What you'll learnBecoming familiar with the NestJS framework and its componentsDesigning and developing REST APIs performing CRUD operationsAuthentication and Authorization for back-end applicationsUsing Typeform for database interactionSecurity best practices, password hashing, and storing sensitive informationPersisting data using a databaseWriting clean, maintainable code in line with industry standardsUtilizing the NestJS Command Line Interface (CLI)Using Swagger for testing back-end servicesImplement efficient logging in a back-end applicationEnvironment-based configuration management and environment variablesImplementing data validation and using PipesGuarding endpoints for authorized users using GuardsModeling entities for the persistence layerTypeScript best practicesHandling asynchronous operations using async-awaitUsing Data Transfer Objects (DTO)Hands-on experience with JSON Web Tokens (JWT)Unit testing NestJS applicationsCreate admin portal with basic crud operations using React admin frameworkCreate CRUD endpoints using NestJSX Crud libraryWhat you should knowHaving a basic understanding of JavaScript and/or NodeJSHaving a basic knowledge of TypeScript is recommended, but not requiredWho is this course if forIntermediate JavaScript developers who want to dive into back-end developmentAny developers willing to apply TypeScript on the back-endDevelopers eager to learn how to develop performant, secure, and production-ready REST APIs following best practicesDevelopers who want to follow building a practical, real-world application from zero to productionFront-end developers who want to move to the back-end development