diff --git a/.gitmodules b/.gitmodules
index 70fda6a17..22790ccc7 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -31,3 +31,6 @@
[submodule "login_server/src/proto"]
path = login_server/src/proto
url = https://github.com/gradido/gradido_protocol.git
+[submodule "login_server/dependencies/protobuf"]
+ path = login_server/dependencies/protobuf
+ url = https://github.com/protocolbuffers/protobuf.git
diff --git a/community_server/src/Template/StateBalances/overview_gdt.ctp b/community_server/src/Template/StateBalances/overview_gdt.ctp
index f076e26c8..198256e23 100644
--- a/community_server/src/Template/StateBalances/overview_gdt.ctp
+++ b/community_server/src/Template/StateBalances/overview_gdt.ctp
@@ -47,8 +47,12 @@ $this->assign('header', $header);
- = $this->element('printEuro', ['number' => $entry['amount']]); ?>
- element('printEuro', ['number' => $entry['amount2']]) ?>
+
+ = $this->element('printGDT', ['number' => $entry['amount']*100.0]); ?>
+
+ = $this->element('printEuro', ['number' => $entry['amount']]); ?>
+ element('printEuro', ['number' => $entry['amount2']]) ?>
+
= $this->Number->format($entry['factor']) ?>
@@ -89,8 +93,12 @@ $this->assign('header', $header);
= new FrozenTime($gdtEntry['date']) ?>
- = $this->element('printEuro', ['number' => $gdtEntry['amount']]) ?>
- element('printEuro', ['number' => $gdtEntry['amount2']]) ?>
+
+ = $this->element('printGDT', ['number' => $gdtEntry['amount']*100.0]); ?>
+
+ = $this->element('printEuro', ['number' => $gdtEntry['amount']]); ?>
+ element('printEuro', ['number' => $gdtEntry['amount2']]) ?>
+
= $this->Number->format($gdtEntry['factor']) ?>
diff --git a/login_server/README b/login_server/README
deleted file mode 100644
index 400aee30a..000000000
--- a/login_server/README
+++ /dev/null
@@ -1,31 +0,0 @@
-sudo apt install libsodium-dev
-
-# get dependencies
-git submodule update --init --recursive
-
-
-cd dependencies/mariadb-connector-c
-mkdir build
-cd build
-cmake -DWITH_SSL=OFF ..
-cd ../../../
-
-
-# get more dependencies with conan (need conan from https://conan.io/)
-mkdir build && cd build
-# // not used anymore
-# conan remote add inexor https://api.bintray.com/conan/inexorgame/inexor-conan
-# not needed, but bincrafter
-# conan install .. -s build_type=Debug
-conan install ..
-
-# build Makefile with cmake
-cmake ..
-
-make grpc
-# under windows build at least release for protoc.exe and grpc c++ plugin
-cd ../
-./unix_parse_proto.sh
-cd build
-make
-
diff --git a/login_server/README.md b/login_server/README.md
new file mode 100644
index 000000000..73f5deea0
--- /dev/null
+++ b/login_server/README.md
@@ -0,0 +1,147 @@
+# Build Login-Server yourself
+## Linux (Ubuntu) Packets
+install build essentials
+
+```bash
+sudo apt install -y gcovr build-essential gettext libcurl4-openssl-dev libssl-dev libsodium-dev libboost-dev
+```
+
+## CMake
+CMake is used for build file generation and the Login-Server needs at least version v3.18.2
+You can build and install it from source.
+The Version in apt is sadly to old.
+
+```bash
+git clone https://github.com/Kitware/CMake.git --branch v3.18.2
+cd CMake
+./bootstrap --parallel=$(nproc) && make -j$(nproc) && sudo make install
+```
+
+## dependencies
+load git submodules if you haven't done it yet
+
+```bash
+git submodule update --init --recursive
+```
+
+## build tools
+build protoc and page compiler needed for generating some additional code
+
+```bash
+cd scripts
+./prepare_build.sh
+```
+
+## build
+build login-server in debug mode
+
+```bash
+cd scripts
+./build_debug.sh
+```
+
+## multilanguage text
+Login-Server uses gettext translations found after build in src/LOCALE
+On Linux Login-Server expect the *.po files in folder /etc/grd_login/LOCALE
+on windows next to Binary in Folder LOCALE.
+So please copy them over by yourself on first run or after change.
+
+If you like to update some translations your find a messages.pot in src/LOCALE.
+Use it together with poedit and don't forget to copy over *.po files after change to /etc/grd_login/LOCALE
+To update messages.pot run
+
+```bash
+./scripts/compile_pot.sh
+```
+This will be also called by ./scripts/build_debug.sh
+
+## database
+Login-Server needs a db to run, it is tested with mariadb
+table definitions are found in folder ./skeema/gradido_login
+Currently at least one group must be present in table groups.
+For example:
+```sql
+INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `host`, `home`, `description`) VALUES
+(1, 'docker', 'docker gradido group', 'localhost', 'localhost', '/', 'gradido test group for docker with blockchain db');
+```
+
+## configuration
+Login-Server needs a configuration file to able to run.
+On Linux it expect it to find the file /etc/grd_login/grd_login.properties
+and /etc/grd_login/grd_login_test.properties for unittest
+
+Example configuration (ini-format)
+```ini
+# Port for Web-Interface
+HTTPServer.port = 1200
+# Port for json-Interface (used by new backend)
+JSONServer.port = 1201
+# default group id for new users, if no group was choosen
+Gradido.group_id = 1
+
+# currently not used
+crypto.server_admin_public = f909a866baec97c5460b8d7a93b72d3d4d20cc45d9f15d78bd83944eb9286b7f
+# Server admin Passphrase
+# nerve execute merit pool talk hockey basic win cargo spin disagree ethics swear price purchase say clutch decrease slow half forest reform cheese able
+#
+
+# TODO: auto-generate in docker build step
+# expect valid hex 32 character long (16 Byte)
+# salt for hashing user password, should be moved into db generated and saved per user, used for hardening against hash-tables
+crypto.server_key = a51ef8ac7ef1abf162fb7a65261acd7a
+
+# TODO: auto-generate in docker build step
+# salt for hashing user encryption key, expect valid hex, as long as you like, used in sha512
+crypto.app_secret = 21ffbbc616fe
+
+# for url forwarding to old frontend, path of community server
+phpServer.url = http://localhost/
+# host for community server api calls
+phpServer.host = localhost
+# port for community server api calls
+phpServer.port = 80
+
+# Path for Login-Server Web-Interface used for link-generation
+loginServer.path = http://localhost/account
+# default language for new users and if no one is logged in
+loginServer.default_locale = de
+
+# db setup tested with mariadb, should also work with mysql
+loginServer.db.host = localhost
+loginServer.db.name = gradido_login
+loginServer.db.user = root
+loginServer.db.password =
+loginServer.db.port = 3306
+
+# check email path for new frontend for link generation in emails
+frontend.checkEmailPath = http://localhost/vue/reset
+
+# disable email all together
+email.disable = true
+
+# setup email smtp server for sending emails
+#email.username =
+#email.sender =
+#email.admin_receiver =
+#email.password =
+#email.smtp.url =
+#email.smtp.port =
+
+# server setup types: test, staging or production
+# used mainly to decide if using http or https for links
+# test use http and staging and production uses https
+ServerSetupType=test
+dev.default_group = docker
+
+# Session timeout in minutes
+session.timeout = 15
+
+# Disabling security features for faster develop and testing
+unsecure.allow_passwort_via_json_request = 1
+unsecure.allow_auto_sign_transactions = 1
+unsecure.allow_cors_all = 1
+
+# default disable, passwords must contain a number, a lower character, a high character, special character, and be at least 8 characters long
+unsecure.allow_all_passwords = 1
+
+```
diff --git a/login_server/dependencies/protobuf b/login_server/dependencies/protobuf
new file mode 160000
index 000000000..0b8d13a1d
--- /dev/null
+++ b/login_server/dependencies/protobuf
@@ -0,0 +1 @@
+Subproject commit 0b8d13a1d4cd9be16ed8a2230577aa9c296aa1ca
diff --git a/login_server/scripts/build_debug.sh b/login_server/scripts/build_debug.sh
index 99a0d6d1a..27e5740dd 100755
--- a/login_server/scripts/build_debug.sh
+++ b/login_server/scripts/build_debug.sh
@@ -1,12 +1,9 @@
#!/bin/sh
-
-cd ../scripts
-
chmod +x compile_pot.sh
+./compile_pot.sh
cd ../build
cmake -DCMAKE_BUILD_TYPE=Debug ..
-./compile_pot.sh
make -j$(nproc) Gradido_LoginServer
chmod +x ./bin/Gradido_LoginServer
diff --git a/login_server/scripts/prepare_build.sh b/login_server/scripts/prepare_build.sh
index fe9c70e46..5598e0318 100755
--- a/login_server/scripts/prepare_build.sh
+++ b/login_server/scripts/prepare_build.sh
@@ -9,9 +9,9 @@ fi
mkdir build
cd build
cmake -DWITH_SSL=OFF ..
-cd ../../
+cd ../../../
-if [! -d "./build" ] ; then
+if [ ! -d "./build" ] ; then
mkdir build
fi
cd build
diff --git a/login_server/scripts/unittest_coverage.sh b/login_server/scripts/unittest_coverage.sh
new file mode 100644
index 000000000..b0bd1a4c9
--- /dev/null
+++ b/login_server/scripts/unittest_coverage.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+cd ../build
+cmake -DCMAKE_BUILD_TYPE=Debug -DCOLLECT_COVERAGE_DATA=ON -DCOVERAGE_TOOL=gcovr .. && \
+make -j$(nproc) Gradido_LoginServer_Test
+make coverage
+
+