initial commit

This commit is contained in:
Hartmut Bauer committed 2026-10-09 17:13:39 +02:00
commit d84861949f
92 files changed
+8425

No files matched your search

@@ -0,0 +1,33 @@
ktor:
deployment:
port: 7770
application:
modules:
- net.keinekekse.app.core.config.HttpKt.configureHttp
- net.keinekekse.app.core.config.SerializationKt.configureSerialization
- net.keinekekse.app.core.config.StatusPagesKt.configureStatusPages
- net.keinekekse.app.core.config.HtmlDslKt.configureHtmlDsl
- net.keinekekse.app.core.config.SecurityKt.configureSecurity
- net.keinekekse.app.core.config.DatabaseKt.configureCoreDatabase
- net.keinekekse.app.core.config.DIKt.configureDependencyInjection
- net.keinekekse.app.core.config.RoutingKt.configureRouting
- net.keinekekse.app.books.config.DatabaseKt.configureBooksDatabase
- net.keinekekse.app.books.config.DIKt.configureBookDependencyInjection
- net.keinekekse.app.books.config.RoutingKt.configureRouting
postgres:
# DB-Params werden vom Container als env vars gesetzt
host: ${DB_HOST}
port: ${DB_PORT}
books_schema: ${BOOKS_SCHEMA}
books_pwd: ${BOOKS_DB_PASSWORD}
kas_schema: ${KAS_SCHEMA}
kas_pwd: ${KAS_DB_PASSWORD}
keycloak:
url: "https://kec.keinekekse.net"
realm: "app-server-realm"
clientId: "pkce-book-app"
kas:
serverUrl: "https://kas.keinekekse.net"
+18
View File
@@ -0,0 +1,18 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
<!-- div Schwätzer raushalten -->
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="io.netty" level="INFO"/>
<logger name="com.zaxxer.hikari" level="INFO"/>
<logger name="org.apache.hc" level="INFO"/>
<logger name="net.keinekekse.app" level="DEBUG"/>
<logger name="io.ktor.server.auth.oidc" level="TRACE"/>
</configuration>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,7 @@
<html>
<head>
</head>
<body>
<h1>Hello Ktor!</h1>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,21 @@
function onScanSuccess (decodedText, decodedResult) {
console.log(`Gescannter Code: ` + decodedText)
// Scanner stoppen, sobald ein Code erkannt wurde
html5QrcodeScanner.clear()
// HTMX AJAX-Aufruf auslösen, um Buchdaten vom Backend zu laden:
htmx.ajax('GET', '/books/isbnlookup/' + encodeURIComponent(decodedText), {
target: '#book-result',
swap : 'innerHTML'
})
}
function renderScanner () {
const html5QrcodeScanner = new Html5QrcodeScanner(
'reader',
{fps: 10, qrbox: {width: 250, height: 150}},
/* verbose= */ false
)
html5QrcodeScanner.render(onScanSuccess)
}
@@ -0,0 +1,31 @@
/* Google Material Symbols (die Datei landet beim Build im web root) */
@import url("/static/styles/google.css");
/* Bootstrap Icon - Alternative zu Google, Datei ist etwa halb so groß */
/* @import url("/bootstrap-icons.min.css"); */
/* Tailwind - .css wird beim Build generiert */
@import url("/static/styles/tailwind.css");
/*
Fixed Table Header -> THEAD
zusätzlich passende background-color setzten
*/
thead.fixed-table-header {
position: sticky;
inset-block-start: 0;
z-index: 1;
}
/*
Den lästigen blauen Rand abschalten, muss bei interaktiven Elementen
gezielt gesetzt werden (i. A. analog hover).
*/
@layer utilities {
*:focus,
*:focus-visible {
outline: none;
border: 0;
}
}
@@ -0,0 +1,35 @@
/*
Material Symbols
----------------
Ansehen unter: https://fonts.google.com/icons
Doku: https://developers.google.com/fonts/docs/material_symbols?hl=de
> git clone https://github.com/google/material-design-icons
> cp material-design-icons/variablefont/*.woff2 .
> rm -rf material-design-icons
MaterialSymbolsOutline*.woff2 nach resources/material-symbols.woff kopieren
<span class="material-symbols-outlined">symbol</span>
bzw.
span(classes = "material-symbols-outlined") { +"symbol" }
*/
@font-face {
font-family: 'Material Symbols Outlined';
font-style: normal;
src: url(/static/fonts/material-symbols.woff2) format('woff2');
}
.material-symbols-outlined {
font-family: 'Material Symbols Outlined';
font-weight: normal;
font-style: normal;
font-size: 24px;
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
}