ModeratorElection/README.md

48 lines
1.7 KiB
Markdown

# meapp-fullstack: ModeratorElection
## Purpose
**ModeratorElection** provides a fullstack java app development as **graalvm binary** containing:
* Java app to elect a team member from a comma separated list delivered by environment variable
* Backend Spring Boot embeded Tomcat<sup>®</sup> Server
* Frontend Vaadin Framework
* Dockerfile to generate multi stage image,
first stage compilation to graalvm binary, second stage as run stage - graalvm binary execution
## Try out
Development phase is completed, we will deploy production soon - reachable at
https://meapp-fullstack.jitsi.prod.meissa.de
## Setup
* in **IDE development**, run
`./gradlew clean vaadinPrepareFrontend`
* build **jar file**
`./gradlew clean build -Pvaadin.productionMode`
-> output jar to build/libs/
* compile **native-image graalvm binary**
(1) use graalvm agent to announce project dependencies
```shell
MEMBERNAMES=er,sie,es java -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image -jar build/libs/ModeratorElection-0.0.1-SNAPSHOT.jar
```
(2)
`./gradlew nativeCompile -Dvaadin.productionMode=true`
-> output binary and necessary libs to build/native/nativeCompile/
* **py builder/build.py** usage recommendation:
`pyb <task>` to either create docker image, publish docker image, run test or dry run.
py builder is using **meissa PyPi package ddadevops** for smart deployment.
## Get help
`./gradlew tasks`
## Development & mirrors
Development completed at:
https://repo.prod.meissa.de/meissa/ModeratorElection
Mirror:
https://gitlab.com/domaindrivenarchitecture/ModeratorElection (CI)
## License
Copyright © 2024 meissa GmbH
Licensed under the [Apache License, Version 2.0](LICENSE)