# core This project was created using the [Ktor Project Generator](https://start.ktor.io). Here are some useful links to get you started: * [Ktor Documentation](https://ktor.io/docs/home.html) * [Ktor GitHub page](https://github.com/ktorio/ktor) * [Ktor Slack chat](https://app.slack.com/client/T09229ZC6/C0A974TJ9). [Request an invite](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up). ## Features Here's a list of features included in this project: | Name | Description | |---------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| | [Status Pages](https://start.ktor.io/p/io.ktor/server-status-pages) | Provides exception handling for routes | | [kotlinx.serialization](https://start.ktor.io/p/io.ktor/server-kotlinx-serialization) | Handles JSON serialization using kotlinx.serialization library | | [Content Negotiation](https://start.ktor.io/p/io.ktor/server-content-negotiation) | Provides automatic content conversion according to Content-Type and Accept headers | | [Authentication](https://start.ktor.io/p/io.ktor/server-auth) | Provides extension point for handling the Authorization header | | [Static Content](https://start.ktor.io/p/io.ktor/server-static-content) | Serves static files from defined locations | | [Caching Headers](https://start.ktor.io/p/io.ktor/server-caching-headers) | Provides options for responding with standard cache-control headers | | [HTMX](https://start.ktor.io/p/io.ktor/server-htmx) | Includes HTMX for front-end scripting | | [HTML DSL](https://start.ktor.io/p/org.jetbrains/server-html-dsl) | Generates HTML from Kotlin DSL | | [PostgreSQL](https://start.ktor.io/p/org.jetbrains/server-postgres) | Adds Postgres database support | | [Exposed](https://start.ktor.io/p/org.jetbrains/server-exposed) | Adds Exposed database to your application | | [Dependency Injection](https://start.ktor.io/p/io.ktor/server-di) | Enables dependency injection for your server | | [CSRF](https://start.ktor.io/p/io.ktor/server-csrf) | Cross-site request forgery mitigation | | [Authentication OAuth](https://start.ktor.io/p/io.ktor/server-auth-oauth) | Handles OAuth Bearer authentication scheme | | [Authentication JWT](https://start.ktor.io/p/io.ktor/server-auth-jwt) | Handles JSON Web Token (JWT) bearer authentication scheme | | [Forwarded Headers](https://start.ktor.io/p/io.ktor/server-forwarded-header-support) | Allows handling proxied headers (X-Forwarded-*) | | [Default Headers](https://start.ktor.io/p/io.ktor/server-default-headers) | Adds a default set of headers to HTTP responses | | [CORS](https://start.ktor.io/p/io.ktor/server-cors) | Enables Cross-Origin Resource Sharing (CORS) | | [Compression](https://start.ktor.io/p/io.ktor/server-compression) | Compresses responses using encoding algorithms like GZIP | ## Structure This project includes the following modules: | Path | Description | |--------|-------------| | | null | | server | null | | web | null | ## Building & Running To build or run the project, use one of the following tasks: | Task | Description | |---------------------------|-------------------| | `./gradlew :server:test` | Run the tests | | `./gradlew :server:build` | Build the project | | `./gradlew :server:run` | Run the server | If the server starts successfully, you'll see the following output: ``` 2024-12-04 14:32:45.584 [main] INFO Application - Application started in 0.303 seconds. 2024-12-04 14:32:45.682 [main] INFO Application - Responding at http://0.0.0.0:8080 ```