Getting Started with Ktor
Let's introduce Server-Side Kotlin and Ktor, discuss our sample project, and review all that you'll be learning in the course.
You'll create a Ktor app from scratch in IntelliJ IDEA and add simple Hello world routes to the app.
An order to keep your code organized, you'll refact the routes you've written so that each route has its own source file
Test your knowledge about building app routes in Ktor by adding and about route to the web app, then see a solution.
Add a repository interface and in-memory repository implementation in order to save model Emoji Phrases in requests to the app.
Create a POST endpoint to which you can send new EmojiPhrases, then test the endpoint using curl and a REST client app.
6  Add a GET route to the web app that will let you retrieve and see EmojiPhrases that have been add to the repository
Introduce FreeMarker templating into the app and create a simple HTML page for showing your EmojiPhrases.
Review all that you've done in Part 1 of the course, and take a look ahead at where we'll be in Part 2 and beyond
Beautification and Type-Safe Routing
See what we'll be covering in Part 2: adding basic authentication, using Bootstrap components for styling, and adding type-safe routing.
Install the Ktor Authentication feature into your app and add Basic Authentication to the POST route and GET route for phrases.
Build an HTML form to let users post new EmojiPhrases directly from the app instead of using other REST clients
Get an introduction to the Bootstrap open-source front-end framework, and review the Bootstrap code that has been added to the app FreeMarker templates.
Setup static content in your Ktor web ap p, and complete the process of adding Bootstrap to the Home and Phrases pages of the app.
Test your knowledge of FreeMarker and the use of Bootstrap by completing the EmojiPhrases app About page, then see a solution. 19659032] 15
Install the Ktor Locations feature in the app, then use the feature to switch to using type-safe routing.
Review all that you've done in Part 2 of the course, and take a look ahead at where we'll be in Part 3 and beyond
Persistence and Sessions
See what we will be covering in Part 3 of the course, adding true data persistence using Exposed and PostgreSQL and building in real authentication via sessions
Add the Exposed SQL library framework from JetBrains into the app, and use it with an in-memory H2 database and with database connection pooling.
19  Switch from using H2 with Exposed to instead using PostgreSQL, adding true data list
Learn about user authentication via cookies and sessions, understand the purpose of password hashing, and start to add user sessions in the course app.
Continue adding sessions to the course app by creating the code for the sign up and sign in pages of the app.
Finish adding sessions to the app by checking for active sessions on the different pages of the app, and verifying a session when users post new data
Review all that we've done in Part 3 of the course and take a look at where we'll be in Parts 4 and 5.
JWT Auth and the API
See what we will be covering in Part 4 of the course, adding JSON Web Tokens for the API authentication and completing a phrases API for the app.
25  Learn about JSON Web Tokens and how they are used, and then add a login endpoint from which API users can obtain a JWT
Create a GET endpoint in the API from which API users can request the Emoji Phrases stored in the app repository.
Create a POST endpoint in the API to which API users can send new EmojiPhrases, and adding data in the Postman REST client
Review all that we've done in Part 4 of the course and take a look at where we'll be in Part 5.  29
See what we will be covering in Part 5 of the course, deploying our Ktor app to Heroku, creating a Docker image, and running the Docker image in a container.
30  How to deploy your Ktor app to Heroku, connect Heroku to GitHub, and setup a PostgreSQL database on Heroku for your app.
Add some build flags to support Dockerizing your Ktor app, then write a Dockerfile and use it to build a docker image of the app.
Run your Ktor app Docker image in a container, including connecting the a pp container to a docker container running PostgreSQL
Review all that you've done to build a deployable Ktor web app and API, both backed by a PostgreSQL database, and take a look at where to go from here .