Files
LMS-APIs/README.md
2025-08-26 14:43:47 -04:00

59 lines
3.5 KiB
Markdown

# LMS-APIs
This project was created using the [Ktor Project Generator](https://start.ktor.io).
## Features
Here's a list of features included in this project:
| Name | Description |
|------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| [Default Headers](https://start.ktor.io/p/default-headers) | Adds a default set of headers to HTTP responses |
| [Routing](https://start.ktor.io/p/routing) | Provides a structured routing DSL |
| [Swagger](https://start.ktor.io/p/swagger) | Serves Swagger UI for your project |
| [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 |
| [Content Negotiation](https://start.ktor.io/p/content-negotiation) | Provides automatic content conversion according to Content-Type and Accept headers |
| [kotlinx.serialization](https://start.ktor.io/p/kotlinx-serialization) | Handles JSON serialization using kotlinx.serialization library |
| [Postgres](https://start.ktor.io/p/postgres) | Adds Postgres database to your application |
## Required Files
### src/main/resources/application.yaml
Required fields:
ktor:
application:
modules:
-codes.kalar.ApplicationKt.module
deployment:
host: <host address> (defaults to `0.0.0.0` if not added)
port: 8080
postgres:
url: "jdbc:postgresql://<url to database>"
user: <username>
password: <password>
## 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 |
| `buildFatJar` | Build an executable JAR of the server with all dependencies included |
| `buildImage` | Build the docker image to use with the fat JAR |
| `publishImageToLocalRegistry` | Publish the docker image locally |
| `run` | Run the server |
| `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
```
From here, navigate to http://0.0.0.0:8080/swagger for API documentation.
NOTE: the address may change if you have updated the application.yaml file with a new host address.