WEBVTT

00:00.080 --> 00:05.930
So we're going to be building a reservation booking system that will actually take real payments, be

00:05.930 --> 00:13.550
able to bill users, persist reservations to a MongoDB database, send email notifications using Gmail,

00:13.550 --> 00:17.740
and push this all up to the cloud using Google Cloud engine.

00:17.750 --> 00:20.390
Okay, so the structure of this course is as follows.

00:20.390 --> 00:26.690
We're going to start off by building out our common library in our nestjs microservices to build common

00:26.690 --> 00:32.060
code that all of our different microservices can utilize, so we can keep our code dry and not have

00:32.060 --> 00:33.350
to repeat ourself.

00:33.350 --> 00:38.990
In this common library, we're going to build our data persistence layer using an abstract repository

00:38.990 --> 00:44.030
that's connected to MongoDB, but we're going to keep it generic so that we can easily swap out our

00:44.030 --> 00:46.280
data persistence layer at any time.

00:46.370 --> 00:52.640
We're going to implement CRUD functionality, validation and logging and start to dockerize our application.

00:52.640 --> 00:59.270
From there, we're going to head to authentication and implement JWT authentication using best practices

00:59.270 --> 01:03.240
with passport JS and implementing multiple strategies.

01:03.240 --> 01:08.610
We're also going to implement a common auth guard that all of our services can use to become authenticated

01:08.610 --> 01:10.080
and protect our routes.

01:10.110 --> 01:15.090
Next, we're going to go on to implement our payments microservice, which is going to use the Stripe

01:15.090 --> 01:21.300
API to actually accept real payment credentials and actually be able to bill our users properly.

01:21.300 --> 01:26.730
Next we're going to build our notifications microservice, which is going to be able to accept events

01:26.730 --> 01:32.610
emitted from our other applications and then send an email using Node mailer and we're going to configure

01:32.610 --> 01:36.090
this so that we actually send and receive emails using Gmail.

01:36.090 --> 01:42.000
And we're going to connect all of these microservices together using the Nestjs microservices package,

01:42.000 --> 01:45.240
which allows us to specify any transport layer.

01:45.240 --> 01:47.370
We want to connect the microservices.

01:47.370 --> 01:48.090
In this course.

01:48.090 --> 01:52.800
We're going to be using the TCP transport layer in order to communicate via TCP.

01:53.160 --> 01:58.590
However, you can use any transport layer you want and easily switch them out based on the architecture

01:58.590 --> 01:59.980
will be implementing.

02:00.000 --> 02:04.230
Finally, we're going to move on to our production deployment where we're going to move all of this

02:04.230 --> 02:10.170
code into a Kubernetes cluster and actually connect it to Google Cloud Engine, where we're going to

02:10.170 --> 02:17.220
do things like automating our CI CD process, connecting to MongoDB Atlas and actually setting up on

02:17.220 --> 02:21.660
Kubernetes engine, exposing our application with a real load balancer.

02:21.660 --> 02:24.630
Everything we use in this course is going to be completely free.

02:24.660 --> 02:30.600
MongoDB Atlas has a free tier that we will be signing up for, and Google Cloud Engine offers a $300

02:30.600 --> 02:32.400
free credit on their services.

02:32.400 --> 02:38.220
So we're not going to have to pay for a single thing in this course in order to deploy it in the cloud.

02:38.220 --> 02:42.870
After that, there's going to be some end to end tests and additional lectures that continue to add

02:42.870 --> 02:44.370
on as time goes on.

02:44.370 --> 02:46.620
So I'm super excited to jump right in.

02:46.650 --> 02:52.500
Of course, if you encounter any issues in any of the lectures, please leave a note in the Q&amp;A section

02:52.500 --> 02:54.810
and I will assist you as soon as possible.

02:54.810 --> 02:58.800
With that, let's go ahead and jump right in and I'll see you in the next lecture.
