Backend#
The backend is implemented as a reactive Spring Boot application using Kotlin coroutines.
๐ Tech Stack#
Framework: Spring Boot 3 (Reactive Coroutines)
Testing: SonarQube, MockK, Testcontainers, WireMock
Language: Kotlin
๐ง Configuration#
Admin UIDs from the identity provider (IDP) must be allowlisted to access admin endpoints.
This can be configured via the room-finder.admin-ids property.
To enable OSM-based extraction, the node IDs of supported buildings must be defined in the application.yml under room-finder.osm.building-way-ids.
Each list entry requires the following attributes:
Attribute |
Description |
|---|---|
|
Regex used to map a room name to this building |
|
Node ID of the building in OpenStreetMap |
|
Display name of the building |
๐งพ Example Configuration#
room-finder:
osm:
building-way-ids:
# Rosenheim Campus
# Main Building
- regex: "A\\d\\.\\d{0,2}\\w?"
buildingId: 28400949 # Building A
name: "A"
# Special case: AZ rooms are physically in Building B
- regex: "AZ\\d\\.\\d{0,2}\\w?"
buildingId: 28401106 # Building B
name: "A"
- regex: "B\\d\\.\\d{0,2}\\w?"
buildingId: 28401106 # Building B
name: "B"
# Building S
- regex: "S\\d\\.\\d{0,3}\\w?"
buildingId: 28401224
name: "S"
๐ถ Bruno Collection#
To test or develop the backend locally, you can use the Bruno collection located in the bruno folder at the root of the repository.
Important:
To use the Bruno collection successfully, add a .env file in the bruno folder.
Hint: You can rename the provided .env.sample file to .env and fill in the required values.