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