 Welcome to the workshops to prepare your SaaS application for enterprise level identity. Today, look at the base application that we'll use in the workshops installed and running locally. The application that you'll use for this enterprise-ready workshop series is a very minimal to-do app. It does not have any of the bells and whistles you might expect from a to-do application, but it gives us just enough features to demonstrate how the application can scale with multi-tenancy using OpenID Connect with more than one identity provider, user management with skim, enhancing the features of the application with no code automations and automating the environment creation. This to-do app is written just like a basic SaaS application that you might find. It is using React on the front end with an Express API back-end. We're going to cover a lot, but don't worry because everything we're talking about today is also documented in a post, but you'll find on the Acadev blog. I've put the link to that blog post in the description below. You'll also find the instructions for getting going in the project source code in the readme file. All right, let's get going. You'll need a couple of tools installed on your machine. First, you'll need a recent version of Node. I'm using Node version 18.14.0. If you don't have Node, you can download it from the Node.js website. You'll find those links to the required tooling in that blog post and in the readme file. When you install Node, you'll also get NPM. I'm using NPM version 9.3.1. This version of NPM supports NPX. NPX will allow you to run packages without installing the library on your machine. For example, I can run NPX version to get the version of NPM. We use NPX commands for some of the actions within the workshops. You'll also want a IDE or a text editor so that you can make local changes to the workshop code. I'll be using Visual Studio Code in this video because I find the built-in terminal pretty handy. Now that you have the required tooling, you'll want to get a copy of the source code. You can get the base application by cloning the repository or by forking it or by downloading the project directory in a zip file if you don't want to deal with it. I will clone the repository. Now we can navigate into the project directory and install the dependencies. I will install the dependencies using NPM CI. This will install the dependencies that's defined in the package JSON file, but it's going to use the versions that's defined in the package lock file. This way, I know I'll be using all of the exact same versions as is specified in the workshop. The base application uses SQLite for a local database. To set up the DB and to seed it with some users, run the command NPM run init DB. What this will do is create two users within your database, and it will also output the user's information, that is their username and password to the console. But don't worry, this is not going to be a forever thing because we wouldn't want to have username and password and plain text, right? We'll be changing this to use a better authentication scheme in the OIDC workshop. Now we can open up the project in our IDE. The important file in this project is the readme. You'll see the instructions for getting, going and installing all of those dependencies that we talked about, as well as links to Node.js, for example. It also has the list of commands that we have run so far, so you can always refer to it as a handy reference guide. This project is a Mono repo, so it has both the React front end, as well as the Express API back end, and it's all housed within an NX workspace. You'll find the React code for the application in the apps to do app, source, and app folder. So in here, for example, I can open up the app.tsx file. You can find the API in apps, API, source, and then main.tsx. That has all of the API back end. Let's start the application. You could use the command npm start, and what this will do is start both projects. It's going to start the React front end on port 3000, and it's going to start the API back end on port 3333. If we take a look at this application, we see that is a very minimal unstyled to do app. We can log in and we could use the username that was output to the console is when we seeded the database. So I will use Bob at tables.fake, with clearly a fake email address, and then use the pad password, correct, source, battery, staple, and then sign in. When I sign in, I'm taken to the to do app, so I can add a new task such as add better authentication, hit save, and now I have it to do for my user, Bob tables. You can also look at the profile to see information about the authenticated user. We can stop the application by typing in control C, which will stop both the front end as well as the back end. If you want to serve the API directly, you can do that by running npm run serve API. We'll serve only the API back end so that you can call the API using a HTTP client such as hopscotch or postman. You can stop that using the control C command as well. Lastly, if you need to visually inspect the database to make changes to it or to just view what is in there, we could use Prisma Studio. We can run npxprismastudio, which will serve Prisma Studio on port 5555. If we look at that, we see that we have the users, Bob and Trinity, and we also have our to do for Bob with add better authentication. Then as with the application serve, you can stop Prisma Studio by typing in control C. That's all you need to get up and going with the base application for the Enterprise Ready workshops. Feel free to add a comment below if you have any questions. I also added that link to the blog post in the description and you will also find all the instructions that we talked about in the projects review as well. Don't forget to like this video and to subscribe to the channel so you can get notified whenever an exciting new video for a workshop is released.