Fullstack TypeScript Development


Course Description

This course covers how to deliver full stack web applications using TypeScript as the development language. It will cover writing Node.js applications using TypeScript and also Nest.js, the enterprise framework for creating enterprise grade backend applications and apis. The course will use Prisma for Object Relational Mapping and will cover both code-first and data-first strategies for interacting with relational and NOSQL (MongoDB) databases. The front-end will be provided by Angular which uses TypeScript or React which can be written using TypeScript. Finally the course will cover the use of NX to create a monorepo for both the frontend and backend projects

Duration: 5 days


Prerequisites

Web Application Development Fundamentals - HTML, CSS, JavaScript Some familiarity with with back end development using other technologies (Java, ASP.NET, etc) An understanding of Node.js and the Node.js ecosystem

TypeScript

History of TypeScript Declaring types Inferring types Creating a constructor Default values for parameters Understanding nulls, undefined, unassigned variables Null coalescing operator Null forgiving operator Using generics Async and await

Backend Web Development

Understanding Node.js: Node Package Manager - npm Package.json Dependencies and developer dependencies

Writing Node.js Applications Using TypeScript

Create a simple node.js backend using Typescript Setting up a TypeScript project Adding express and @types/express Creating a simple API endpoint using a file for persistence

Nest.js

Introduction to Nest.js Creating a Nest.js project Model View Controller pattern Inversion of control and dependency injection Externalising configuration Logging

Nest.js Authorisation

Creating an auth endpoint The register method Storing hashed passwords - the bcrypt library JWT authentication @nestjs/jwt Nest.js middleware Nest.js guards

Prisma

Object Relational Mapping Adding prisma dependencies Initialising an schema Setting the connection string Understanding the migration and pull operations Generating the PrismaClient

Code First ORM using Prisma

Creating the schema Creating a migration Testing read and write operations

Data First ORM

Pull the schema from an existing database Reviewing the schema Create the PrismaClient Test read and write operations Make a change to the schema Create a migration Verify changes have been applied to database

Frontend

Understanding Component Frameworks: What are components? Why use components? Which component framework should I use? Angular and React Comparison Writing a Frontend Application: Scaffold the application Create some simple front end components Making Ajax Calls Authentication & Authorization

MonoRepo

Introducing MonoRepos: What is a MonoRepo? Why use a MonoRepo? Creating your own MonoRepo Using Nx: Introduction to NX Why use a build tool like Nx Creating a mono repo for our application Sharing classes between frontend and backend Building the application Deploying your application


Full stack web development JavaScript TypeScript Nest.js Angular React Prisma ORM Object Relational Mapping Modern Web Development