diff --git a/web_backend/quarkus-app/.dockerignore b/web_backend/.dockerignore similarity index 100% rename from web_backend/quarkus-app/.dockerignore rename to web_backend/.dockerignore diff --git a/web_backend/quarkus-app/.gitignore b/web_backend/.gitignore similarity index 100% rename from web_backend/quarkus-app/.gitignore rename to web_backend/.gitignore diff --git a/web_backend/quarkus-app/.idea/checkstyle-idea.xml b/web_backend/.idea/checkstyle-idea.xml similarity index 100% rename from web_backend/quarkus-app/.idea/checkstyle-idea.xml rename to web_backend/.idea/checkstyle-idea.xml diff --git a/web_backend/quarkus-app/.idea/codeStyles/Project.xml b/web_backend/.idea/codeStyles/Project.xml similarity index 100% rename from web_backend/quarkus-app/.idea/codeStyles/Project.xml rename to web_backend/.idea/codeStyles/Project.xml diff --git a/web_backend/quarkus-app/.idea/codeStyles/codeStyleConfig.xml b/web_backend/.idea/codeStyles/codeStyleConfig.xml similarity index 100% rename from web_backend/quarkus-app/.idea/codeStyles/codeStyleConfig.xml rename to web_backend/.idea/codeStyles/codeStyleConfig.xml diff --git a/web_backend/quarkus-app/.idea/google-java-format.xml b/web_backend/.idea/google-java-format.xml similarity index 100% rename from web_backend/quarkus-app/.idea/google-java-format.xml rename to web_backend/.idea/google-java-format.xml diff --git a/web_backend/quarkus-app/.mvn/wrapper/.gitignore b/web_backend/.mvn/wrapper/.gitignore similarity index 100% rename from web_backend/quarkus-app/.mvn/wrapper/.gitignore rename to web_backend/.mvn/wrapper/.gitignore diff --git a/web_backend/quarkus-app/.mvn/wrapper/MavenWrapperDownloader.java b/web_backend/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from web_backend/quarkus-app/.mvn/wrapper/MavenWrapperDownloader.java rename to web_backend/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/web_backend/quarkus-app/.mvn/wrapper/maven-wrapper.properties b/web_backend/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from web_backend/quarkus-app/.mvn/wrapper/maven-wrapper.properties rename to web_backend/.mvn/wrapper/maven-wrapper.properties diff --git a/web_backend/README.md b/web_backend/README.md index c50cb582..21fad221 100644 --- a/web_backend/README.md +++ b/web_backend/README.md @@ -1,3 +1,40 @@ -## Teamagochi Backend Architecture + +
+

Teamagochi Web-Backend

-![IMG20240415181928](https://github.com/smartuni/riot-po-2024/assets/102831965/df1e9e11-421d-417b-a237-67e6496f2918) +The backend for the Teamgochi project, build with the [Quarkus](https://quarkus.io) Java Framework.

+[Explore the docs](https://github.com/smartuni/teamagochi/tree/main/web_backend) +
+ + + +## Usage + +The development environment can be started by using the [Quarkus CLI](https://quarkus.io/guides/cli-tooling), +the `mvnw.cmd` script (Windows) or the equivalent `./mvnw` (Linux). + +```shell +quarkus dev + +# Maven +./mvnw compile quarkus:dev +mvnw.cmd compile quarkus:dev +``` + +Run `quarkus --help`, `./mvnw quarkus --help` or `mvnw.cmd quarkus --help` to display help and all available commands. +Read more about the [development mode](https://quarkus.io/guides/maven-tooling#dev-mode) or +about the [command line interface](https://quarkus.io/guides/cli-tooling) in general. + +## Extensions + +The following table contains all used [Quarkus Extensions](https://quarkus.io/extensions/) + +| Name | Links | Why? | +|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| +| REST | [Docs](https://quarkus.io/guides/rest), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest) | Create and provide REST services | +| REST Jackson | [Docs](https://quarkus.io/guides/rest#json-serialisation), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest-jackson/) | Jackson serialization (JSON) support for REST extension | +| REST Client | [Docs](https://quarkus.io/guides/rest-client), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest-client/) | Call REST services, support receiving Server-sent events (SSE) | +| REST Client Jackson | [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest-client-jackson/) | Jackson serialization (JSON) support for the REST Client | +| Hibernate ORM with Panache | [Docs](https://quarkus.io/guides/hibernate-orm-panache), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-hibernate-orm-panache/) | Domain model persistence for relational databases using the the repository pattern | +| JDBC Driver - PostgreSQL | [Docs](https://quarkus.io/guides/datasource), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-jdbc-postgresql/) | Connect to the PostreSQL database via JDBC | +| JDBC Driver - H2 | [Docs](https://quarkus.io/guides/datasource), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-jdbc-h2/) | Connect to the H2 database via JDBC | diff --git a/web_backend/quarkus-app/mvnw b/web_backend/mvnw similarity index 100% rename from web_backend/quarkus-app/mvnw rename to web_backend/mvnw diff --git a/web_backend/quarkus-app/pom.xml b/web_backend/pom.xml similarity index 100% rename from web_backend/quarkus-app/pom.xml rename to web_backend/pom.xml diff --git a/web_backend/quarkus-app/README.md b/web_backend/quarkus-app/README.md deleted file mode 100644 index 21fad221..00000000 --- a/web_backend/quarkus-app/README.md +++ /dev/null @@ -1,40 +0,0 @@ - -
-

Teamagochi Web-Backend

- -The backend for the Teamgochi project, build with the [Quarkus](https://quarkus.io) Java Framework.

-[Explore the docs](https://github.com/smartuni/teamagochi/tree/main/web_backend) -
- - - -## Usage - -The development environment can be started by using the [Quarkus CLI](https://quarkus.io/guides/cli-tooling), -the `mvnw.cmd` script (Windows) or the equivalent `./mvnw` (Linux). - -```shell -quarkus dev - -# Maven -./mvnw compile quarkus:dev -mvnw.cmd compile quarkus:dev -``` - -Run `quarkus --help`, `./mvnw quarkus --help` or `mvnw.cmd quarkus --help` to display help and all available commands. -Read more about the [development mode](https://quarkus.io/guides/maven-tooling#dev-mode) or -about the [command line interface](https://quarkus.io/guides/cli-tooling) in general. - -## Extensions - -The following table contains all used [Quarkus Extensions](https://quarkus.io/extensions/) - -| Name | Links | Why? | -|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| -| REST | [Docs](https://quarkus.io/guides/rest), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest) | Create and provide REST services | -| REST Jackson | [Docs](https://quarkus.io/guides/rest#json-serialisation), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest-jackson/) | Jackson serialization (JSON) support for REST extension | -| REST Client | [Docs](https://quarkus.io/guides/rest-client), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest-client/) | Call REST services, support receiving Server-sent events (SSE) | -| REST Client Jackson | [Info](https://quarkus.io/extensions/io.quarkus/quarkus-rest-client-jackson/) | Jackson serialization (JSON) support for the REST Client | -| Hibernate ORM with Panache | [Docs](https://quarkus.io/guides/hibernate-orm-panache), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-hibernate-orm-panache/) | Domain model persistence for relational databases using the the repository pattern | -| JDBC Driver - PostgreSQL | [Docs](https://quarkus.io/guides/datasource), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-jdbc-postgresql/) | Connect to the PostreSQL database via JDBC | -| JDBC Driver - H2 | [Docs](https://quarkus.io/guides/datasource), [Info](https://quarkus.io/extensions/io.quarkus/quarkus-jdbc-h2/) | Connect to the H2 database via JDBC | diff --git a/web_backend/quarkus-app/mvnw.cmd b/web_backend/quarkus-app/mvnw.cmd deleted file mode 100755 index c4586b56..00000000 --- a/web_backend/quarkus-app/mvnw.cmd +++ /dev/null @@ -1,205 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.2.0 -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %WRAPPER_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file -SET WRAPPER_SHA_256_SUM="" -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B -) -IF NOT %WRAPPER_SHA_256_SUM%=="" ( - powershell -Command "&{"^ - "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ - "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ - " exit 1;"^ - "}"^ - "}" - if ERRORLEVEL 1 goto error -) - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% diff --git a/web_backend/quarkus-app/src/main/docker/Dockerfile.jvm b/web_backend/src/main/docker/Dockerfile.jvm similarity index 100% rename from web_backend/quarkus-app/src/main/docker/Dockerfile.jvm rename to web_backend/src/main/docker/Dockerfile.jvm diff --git a/web_backend/quarkus-app/src/main/docker/Dockerfile.legacy-jar b/web_backend/src/main/docker/Dockerfile.legacy-jar similarity index 100% rename from web_backend/quarkus-app/src/main/docker/Dockerfile.legacy-jar rename to web_backend/src/main/docker/Dockerfile.legacy-jar diff --git a/web_backend/quarkus-app/src/main/docker/Dockerfile.native b/web_backend/src/main/docker/Dockerfile.native similarity index 100% rename from web_backend/quarkus-app/src/main/docker/Dockerfile.native rename to web_backend/src/main/docker/Dockerfile.native diff --git a/web_backend/quarkus-app/src/main/docker/Dockerfile.native-micro b/web_backend/src/main/docker/Dockerfile.native-micro similarity index 100% rename from web_backend/quarkus-app/src/main/docker/Dockerfile.native-micro rename to web_backend/src/main/docker/Dockerfile.native-micro diff --git a/web_backend/quarkus-app/src/main/java/haw/teamagochi/backend/app/AppLifecycleListener.java b/web_backend/src/main/java/haw/teamagochi/backend/app/AppLifecycleListener.java similarity index 100% rename from web_backend/quarkus-app/src/main/java/haw/teamagochi/backend/app/AppLifecycleListener.java rename to web_backend/src/main/java/haw/teamagochi/backend/app/AppLifecycleListener.java diff --git a/web_backend/quarkus-app/src/main/java/haw/teamagochi/backend/app/Main.java b/web_backend/src/main/java/haw/teamagochi/backend/app/Main.java similarity index 100% rename from web_backend/quarkus-app/src/main/java/haw/teamagochi/backend/app/Main.java rename to web_backend/src/main/java/haw/teamagochi/backend/app/Main.java diff --git a/web_backend/quarkus-app/src/main/resources/application.properties b/web_backend/src/main/resources/application.properties similarity index 100% rename from web_backend/quarkus-app/src/main/resources/application.properties rename to web_backend/src/main/resources/application.properties diff --git a/web_backend/quarkus-app/src/main/resources/google_checks.xml b/web_backend/src/main/resources/google_checks.xml similarity index 100% rename from web_backend/quarkus-app/src/main/resources/google_checks.xml rename to web_backend/src/main/resources/google_checks.xml