Creating our project via the NestJS CLI
Introduction to NestJS Modules
Introduction to NestJS Controllers
Creating at Tasks Controller
Introduction to NestJS Providers and Services
Feature: Getting All Tasks
Creating a Postman Collection
Feature: Creating a Task (Part 1 - Controller)
Feature: Creating a Task (Part 2 - Service)
Intro to Data Transfer Objects (DTO)
Implementing CreateTaskDto
Feature: Getting a Task by ID
Challenge: Deleting a Task
Solution: Deleting a Task
Challenge: Update Task Status
Solution: Update Task Status
Feature: Searching and Filtering
Introduction to NestJS Pipes
ValidationPipe: Creating a Task
Error Handling: Getting a non-existing Task
Error Handling: Deleting a non-existing Task
Validation: Update Task Status
Challenge: Validating Task Filtering and Search
Introduction to Persistence
Installing Docker and pgAdmin
Running PostgreSQL via Docker
Creating a Database using pgAdmin
Setting up a Database Connection
Active Record VS Data Mapper Patterns
Creating a Tasks Repository
Refactoring for Tasks Service
Persistence: Getting a Task by ID
Persistence: Creating a Task
(Challenge) Persistence: Deleting a Task
(Solution) Persistence: Deleting a Task
Persistence: Update Task Status
Persistence: Getting All Tasks
Intro to Authentication and Authorization
Setting up AuthModule User Entity and User Repository
Validation: Credentials and Password Strength
Error Handling: Username Conflicts
Securely Storing Passwords
Password Hashing With Bcrypt
Intro to JSON Web Tokens (JWT)
Setting up the JWT Module and Passport.js
Signing a JWT Token on Sign In (Authentication)
Implementing JWT Validation
Custom @GetUser Decorator
Guarding the Tasks Routes
Tasks and Users - Database Relation
Restricting Getting All Tasks
BUG FIX: Getting All Tasks
Restricting Getting a Task By ID
Restricting Status Updates
Restricting Deleting A Task
DISCLAIMER: Potential Costs
Creating a Heroku Application
Installing the the Heroku CLI
Changes in our NestJS App
Deploying NestJS to Heroku
Deploying Front-end to GitHub Pages
Unit Testing Crash Course: Basics
Unit Testing Crash Course: First Tests
IMPORTANT: Fixing import paths
Testing TasksService - Part 1
Testing TasksService - Part 2
GraphQL + MongoDB: Section Introduction
Project Overview: School Management
Robo 3T - Connecting to the MongoDB Database
Ensure NestJS 7 Installation
Installing GraphQL Dependencies
IMPORTANT! GraphQL installation version
Creating the Lesson Module
Defining the Lesson GraphQL Type
Creating the Lesson Resolver
Using the GraphQL Playground
Persistence: TypeORM MongoDB and our Lesson Entity
LessonService and createLesson method
Create Lesson GraphQL Mutation
getLesson GraphQL Query with MongoDB
Validation: Create Lesson Input
Challenge: Get All Lessons GraphQL Query
Creating the Student Module
Challenge: Defining the Student Entity
Challenge: Create Student Mutation
Challenge: Get All Students GraphQL Query
Challenge: Get Student by ID Query
Assign Students To Lesson GraphQL Mutation
Improvement: Assign Students Upon Lesson Creation
Resolve "students" Field in Lesson
Additional Resources: GraphQL