So we're going to be building a reservation booking system that will actually take real payments, be
able to bill users, persist reservations to a MongoDB database, send email notifications using Gmail,
and push this all up to the cloud using Google Cloud engine.
Okay, so the structure of this course is as follows.
We're going to start off by building out our common library in our nestjs microservices to build common
code that all of our different microservices can utilize, so we can keep our code dry and not have
to repeat ourself.
In this common library, we're going to build our data persistence layer using an abstract repository
that's connected to MongoDB, but we're going to keep it generic so that we can easily swap out our
data persistence layer at any time.
We're going to implement CRUD functionality, validation and logging and start to dockerize our application.
From there, we're going to head to authentication and implement JWT authentication using best practices
with passport JS and implementing multiple strategies.
We're also going to implement a common auth guard that all of our services can use to become authenticated
and protect our routes.
Next, we're going to go on to implement our payments microservice, which is going to use the Stripe
API to actually accept real payment credentials and actually be able to bill our users properly.
Next we're going to build our notifications microservice, which is going to be able to accept events
emitted from our other applications and then send an email using Node mailer and we're going to configure
this so that we actually send and receive emails using Gmail.
And we're going to connect all of these microservices together using the Nestjs microservices package,
which allows us to specify any transport layer.
We want to connect the microservices.
In this course.
We're going to be using the TCP transport layer in order to communicate via TCP.
However, you can use any transport layer you want and easily switch them out based on the architecture
will be implementing.
Finally, we're going to move on to our production deployment where we're going to move all of this
code into a Kubernetes cluster and actually connect it to Google Cloud Engine, where we're going to
do things like automating our CI CD process, connecting to MongoDB Atlas and actually setting up on
Kubernetes engine, exposing our application with a real load balancer.
Everything we use in this course is going to be completely free.
MongoDB Atlas has a free tier that we will be signing up for, and Google Cloud Engine offers a $300
free credit on their services.
So we're not going to have to pay for a single thing in this course in order to deploy it in the cloud.
After that, there's going to be some end to end tests and additional lectures that continue to add
on as time goes on.
So I'm super excited to jump right in.
Of course, if you encounter any issues in any of the lectures, please leave a note in the Q&A section
and I will assist you as soon as possible.
With that, let's go ahead and jump right in and I'll see you in the next lecture.