Files
diploma-server/README.md
Evgenii Saenko c470f766e0 Init commit
2025-10-15 12:01:54 -07:00

49 lines
3.7 KiB
Markdown

# diploma
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)
- The [Ktor Slack chat](https://app.slack.com/client/T09229ZC6/C0A974TJ9). You'll need to [request an invite](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up) to join.
## Features
Here's a list of features included in this project:
| Name | Description |
| ------------------------------------------------------------------------|------------------------------------------------------------------------------------ |
| [Content Negotiation](https://start.ktor.io/p/content-negotiation) | Provides automatic content conversion according to Content-Type and Accept headers |
| [Routing](https://start.ktor.io/p/routing) | Provides a structured routing DSL |
| [kotlinx.serialization](https://start.ktor.io/p/kotlinx-serialization) | Handles JSON serialization using kotlinx.serialization library |
| [Authentication](https://start.ktor.io/p/auth) | Provides extension point for handling the Authorization header |
| [Authentication JWT](https://start.ktor.io/p/auth-jwt) | Handles JSON Web Token (JWT) bearer authentication scheme |
| [Swagger](https://start.ktor.io/p/swagger) | Serves Swagger UI for your project |
| [Default Headers](https://start.ktor.io/p/default-headers) | Adds a default set of headers to HTTP responses |
| [CORS](https://start.ktor.io/p/cors) | Enables Cross-Origin Resource Sharing (CORS) |
| [Compression](https://start.ktor.io/p/compression) | Compresses responses using encoding algorithms like GZIP |
| [Caching Headers](https://start.ktor.io/p/caching-headers) | Provides options for responding with standard cache-control headers |
## Building & Running
To build or run the project, use one of the following tasks:
| Task | Description |
| -----------------------------------------|---------------------------------------------------------------------- |
| `./gradlew test` | Run the tests |
| `./gradlew build` | Build everything |
| `./gradlew buildFatJar` | Build an executable JAR of the server with all dependencies included |
| `./gradlew buildImage` | Build the docker image to use with the fat JAR |
| `./gradlew publishImageToLocalRegistry` | Publish the docker image locally |
| `./gradlew run` | Run the server |
| `./gradlew runDocker` | Run using the local docker image |
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
```