KON-678 Umzug der Dokumentation auf Eclipse Doc-Repository
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b463994
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,39 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**
+!**/src/test/**
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### Logs ###
+/logs
+
+### Sonar ###
+/.scannerwork
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+*.log
+*.gz
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+
+### VS Code ###
+.vscode/
diff --git a/get_started.txt b/get_started.txt
new file mode 100644
index 0000000..a40deb3
--- /dev/null
+++ b/get_started.txt
@@ -0,0 +1,100 @@
+ *******************************************************************************
+ * Copyright (c) 2020 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+GET STARTED
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+**********************************************************************
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
+PLEASE BE SURE THAT YOU HAVE FIRST PORTAL INSTALLED AND CONFIGURED ! *
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
+**********************************************************************
+
+Here you find a step-by-step instruction on how to build all documentation in this repository including:
+- architectureDocumentation.adoc
+- howtoBuild.adoc
+- howtoConfigure.adoc
+- howtoRun.adoc
+- userDocumentation.adoc
+At the end you have a pdf and a html version of each adoc (documentation).
+
+---------------- REQUIREMENTS -------------
+* Java 1.8
+* Apache Maven 3.6.1
+* Graphviz
+
+If you meet this requirements, check if you have set JAVA_HOME and M2_HOME.
+    - If yes: Ignore step 1,2 and 3
+    - If no: Follow the corresponding steps below
+
+
+-------------------- 1 ---------------------
+Install java 8
+
+- Open a cmd and check your java version
+    $ java -version
+- If you dont have java version 1.8 then download and install it from:
+        http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
+- Set JAVA_HOME (Windows OS):
+    Right click on This Computer and select Properties.
+    On the Advanced tab, select Environment Variables, and then edit JAVA_HOME to point to where the JDK software is located, for example, C:\Program Files\Java\jdk1.8.xxx.
+    Also, edit The Path variable in System variables and add the bin path (C:\Program Files\Java\jdk1.8.xxx\bin)
+- Restart your PC
+- Confirm by checking the version
+    $ java -version
+
+
+-------------------- 2 ---------------------
+Install Apache Maven to your pc
+
+Maven is a tool that can be used for building and managing any Java-based project.
+
+- Download maven 3.6.1 from
+        https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/
+- Extract the folder and place it on your C drive
+- Set M2_HOME (Windows OS):
+    - Right click on This Computer and select Properties.
+    - On the Advanced tab, select Environment Variables, and then create M2_HOME to point to where the Maven software is located, for example, C:\apache-maven-3.5.0.
+    - Also edit The Path variable in System variables and add the bin path (C:\apache-maven-3.5.0\bin)
+- Restart your PC
+- Confirm with
+    $ mvn -v
+
+-------------------- 3 ---------------------
+Install Graphviz
+Graphviz is open source graph visualization software. You need this software because of auto-generated graphics in the documentations.
+
+* Download and install Graphviz from https://www.graphviz.org/download/
+* If not already done, set the PATH variable
+
+ Value of variable: <GRAPHVIZ_DIR>\bin
+
+-------------------- 4 ---------------------
+Building the documentation:
+- Open a command line and navigate to the root folder of this project (same location of this very get_started.txt file)
+- Use the following call to cleanly build and install artifacts:
+    $ mvn clean install
+
+-------------------- 5 ---------------------
+If you successfully build the maven project you can find in /target/generated-docs all the documentations of this projects
+in pdf and html form, choose according to your liking:
+    - "howtoBuild" -> here you can read how to build the whole (backend and frontend) project
+    - "howtoConfigure" -> here you can read how to configure the Application
+    - "howtoRun" -> here you can read how to run/start the Application
+    - "architectureDocumentation" -> here you can read about the architecture pf this module
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+NEXT STEP -> READ THE howtoBuild FILE             !
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..0b5f3e1
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    *******************************************************************************
+    * Copyright (c) 2019 Contributors to the Eclipse Foundation
+    *
+    * See the NOTICE file(s) distributed with this work for additional
+    * information regarding copyright ownership.
+    *
+    * This program and the accompanying materials are made available under the
+    * terms of the Eclipse Public License v. 2.0 which is available at
+    * http://www.eclipse.org/legal/epl-2.0.
+    *
+    * SPDX-License-Identifier: EPL-2.0
+    *******************************************************************************
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.eclipse.openk</groupId>
+    <artifactId>contact-base-data.documentation</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>contact-base-data-documentation</name>
+    <description>Contact Base Data project for openKONSEQUENZ</description>
+
+    <properties>
+        <skip.asciidoc>false</skip.asciidoc>
+        <java.version>1.8</java.version>
+        <asciidoctor-maven-plugin-version>1.5.3</asciidoctor-maven-plugin-version>
+        <asciidoctorj-pdf-version>1.5.0-alpha.11</asciidoctorj-pdf-version>
+        <asciidoctorj-version>1.5.4</asciidoctorj-version>
+        <asciidoctorj-diagram-versions>1.5.4.1</asciidoctorj-diagram-versions>
+        <jacoco-maven-plugin.version>0.8.5</jacoco-maven-plugin.version>
+        <jruby-complete-version>9.0.0.0</jruby-complete-version>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+    </properties>
+
+    <dependencies>
+
+    </dependencies>
+
+    <dependencyManagement>
+
+    </dependencyManagement>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.asciidoctor</groupId>
+                <artifactId>asciidoctor-maven-plugin</artifactId>
+                <version>${asciidoctor-maven-plugin-version}</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.jruby</groupId>
+                        <artifactId>jruby-complete</artifactId>
+                        <version>${jruby-complete-version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.asciidoctor</groupId>
+                        <artifactId>asciidoctorj-pdf</artifactId>
+                        <version>${asciidoctorj-pdf-version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.asciidoctor</groupId>
+                        <artifactId>asciidoctorj</artifactId>
+                        <version>${asciidoctorj-version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.asciidoctor</groupId>
+                        <artifactId>asciidoctorj-diagram</artifactId>
+                        <version>${asciidoctorj-diagram-versions}</version>
+                    </dependency>
+                </dependencies>
+                <configuration>
+                    <sourceDirectory>src/main/asciidoc</sourceDirectory>
+                    <requires>
+                        <require>asciidoctor-diagram</require>
+                    </requires>
+                    <attributes>
+						<imagesoutdir>${project.build.directory}/generated-docs/images</imagesoutdir>
+						<imagesDir>${project.build.directory}/generated-docs/images</imagesDir>
+                    </attributes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>output-html</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>process-asciidoc</goal>
+                        </goals>
+                        <configuration>
+                            <skip>${skip.asciidoc}</skip>
+							<imagesDir>./images</imagesDir>
+                            <requires>
+                                <require>asciidoctor-diagram</require>
+                            </requires>
+                            <sourceHighlighter>coderay</sourceHighlighter>
+                            <backend>html</backend>
+                            <doctype>book</doctype>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>output-pdf</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>process-asciidoc</goal>
+                        </goals>
+                        <configuration>
+                            <skip>${skip.asciidoc}</skip>
+							<imagesDir>${project.build.directory}/generated-docs/images</imagesDir>
+                            <requires>
+                                <require>asciidoctor-diagram</require>
+                            </requires>
+                            <sourceHighlighter>coderay</sourceHighlighter>
+                            <backend>pdf</backend>
+                            <doctype>book</doctype>
+                            <attributes>
+                                <icons>font</icons>
+                                <pagenums />
+                                <toc />
+                                <idprefix />
+                                <idseparator>-</idseparator>
+                            </attributes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+
+</project>
\ No newline at end of file
diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
new file mode 100644
index 0000000..1ea0a84
--- /dev/null
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -0,0 +1,869 @@
+////
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+////
+
+openKonsequenz - Architecture of the module 'Contact Base Data'
+===============================================================
+Frank Dietrich <frank.dietrich@pta.de>; Simon Reis <simon.reis@pta.de>
+:Date: 2020-02-25
+:Revision: 1
+:icons:
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+This documentation is based on the ARC42-Template (v7.0):
+
+== Introduction and Goals
+
+=== Requirements Overview
+
+Many user modules of an openKONSEQUENZ installion need contact data for their
+daily business. Furthermore they have to fulfil the regulatory requirement
+of the General Data Protection Regulation (GDPR).
+
+This core module 'Contact Base Data' provides a central component for managing contact
+datas including the crucial functionality of GDPR.
+
+The full requirements of the module 'Contact Base Data' (in German: Modul 'Kontaktstammdaten') is described in the document
+
+* "Anforderungsspezifikation Modul Kontaktstammdaten" version 1.2 / 07-11-2019.
+
+
+
+=== Quality Goals
+The module 'Contact Base Data' represents a core module that is based on the architecture platform of openKONSEQUENZ. The main quality
+goals of the platform are:
+
+* *Flexibility* The reference platform shall grant that different systems and modules from different vendors/developers can interact and interoperate, and may be exchanged or recombined.
+* *Availability* All platform modules that are running on the platform can only be as available as the platform same for user modules that are based on platform modules.
+* *Maintainability* (and testability as part of maintainability)  The platform and its platform modules shall be used longer than 15 years.
+* *Integration performance* New implemented functionality of oK's own modules and external modules shall be included fast / automatically.
+* *Security* The platform and its modules need to underly security-by-design
+
+The main quality goals of the core module Contact Base Data are:
+
+* *Functionality* The core module must fulfil the functional requirements mentioned in the section before
+* *Ergonomics* The web interface must be realized according to oK-GUI-styleguide.
+* *Good documentation* (i.e. code and architecture documentation) makes code changes easier and automatic
+tests facilitate rigorous verification.
+* *Modifiability* (and testability as part of modifiability)
+* *Integration performance* The core module's integration into different production environments has to be easy.
+
+The following documents contain the quality goals in detail:
+
+* Architecture Committee Handbook v1.6.0 from 10-07-2019
+* Quality Committee Handbook v2.0.1 from 15-10-2018
+
+The architecture is based on the AC-Handbook. The quality demands are described in the QC-Handbook.
+Both specifications were fully complied with in the project, so that a high quality is given.
+
+The code quality regarding static code analysis and unit test code coverage on the backend and frontend sides
+are ensured by the use of sonarqube. The rule set and the qualtity gate are defined by the default, the
+so called "sonar way".
+
+The module 'Contact Base Data' is part of the Eclipse project 'Eclipse openK Core Modules'.
+This project bases on the Eclipse Public Licence 2.0.
+
+=== Stakeholders
+
+.Stakeholders
+[options="header,footer"]
+|=========================================================
+|Role/Name|Contact|Expectations
+|Product Owner (represents the Distribution System Operators)|Gordon Pickfort, Rainer Fuhrmann|The software must fulfil their functional and nonfunctional requirements.
+|Module Developer|Michel Alessandrini, Jonas Tewolde, Frank Dietrich|All relevant business and technical information must be available for implementing the software.
+|External Reviewer (represents the AC/QC)|n.n.|The software and the documentation is realized according to the Quality and Architecture Handbook of openKONSEQUENZ.
+|External Reviewer (represents the Eclipse-Requirements)|n.n.|The software is  licensed under the EPL 2.0. It must be validated that all requirements are fulfilled.
+|System Integrator|n.n.|A documentation for the integration of the module in the DSO specific environments must be available.
+|=========================================================
+
+== Architecture Constraints
+
+The main architecture constraints are:
+
+* *Public License* The module must be available under the “Eclipse Public License 2.0”.
+* *Standardization* The module must use the reference platform.
+* *Availability* The source code of the module must be accessible to any interested person/company.
+
+Therefore the project is published under the following repositories:
+
+* https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.backend
+* https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.frontend
+
+
+=== Technical Constraints
+
+The following technical constraints are given:
+
+.Technical Contraints
+[options="header,footer"]
+|========================================================
+|Component|Constraints
+|Base components of the reference platform
+a|* Application Server Tomcat
+* JPA EclipseLink
+* Database PostgreSQL
+
+|Enterprise service bus
+a|* ESB Talend
+* Communication via RESTful Webservices
+
+|Programming language frontend
+a|* Angular
+* Bootstrap
+* jQuery
+* REST/JSON Interfaces
+
+|GUI design
+a|* According to oK-GUI-Styleguide
+
+|Java QA environment
+a| * Sonarqube 5.6.6
+
+|Programming language
+a|* Backend: Java 1.8
+* Frontend: Angular 7+ (Javascript, Typescript, HTML5, CSS3)
+
+|IDE
+a|* Not restricted (Eclipse, IntelliJ, Microsoft Developer Studio, Microsoft Visual Code ...)
+
+|Build system
+a|* Backend: Maven
+* Frontend: NodeJS + Angular/cli
+
+|Libraries, frameworks, components
+a|* Used Libraries/Frameworks have to be compatible to the Eclipse Public License
+
+|Architecture Documentation
+a|* According ARC42-Template
+|========================================================
+
+
+=== Technical Dependencies
+
+==== Modules
+The following modules are required to use the 'Contact Base Data':
+
+.Modules
+[options="header,footer"]
+|=========================================================
+|Name of the module|Purpose|Status of the module
+|'Auth&Auth'|Authentification and Authorization|available
+|=========================================================
+
+
+==== Libraries
+
+The following libraries are used:
+
+.Libraries
+[options="header,footer"]
+|=========================================================
+|Name of the library|Version|Artefact-id|Usage|License|Tier
+
+
+|org.springframework.boot.spring-boot-starter-parent|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.boot.spring-boot-starter-data-jpa|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.spring-boot-starter-data-ldap|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.boot.spring-boot-starter-oauth2-client|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.boot.spring-boot-starter-security|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.boot.spring-boot-starter-web|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.flywaydb.flyway-core|6.0.8
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.cloud.spring-cloud-starter-openfeign|2.2.0.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.cloud.spring-cloud-starter-netflix-ribbon|2.2.0.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.keycloak.keycloak-core|3.4.2_Final
+a|
+||Apache License 2.0|Backend
+
+|org.postgresql.postgresql|42.2.8
+a|
+||New BSD License|Backend
+
+|org.projectlombok.lombok|1.18.10
+a|
+||MIT|Backend
+
+|org.mapstruct.mapstruct-processor|1.2.0.Final
+a|
+||Apache License 2.0|Backend
+
+|io.jsonwebtoken.jjwt|0.9.1
+a|
+||Apache License 2.0|Backend
+
+|io.springfox.springfox-swagger2|2.9.2
+a|
+||Apache License 2.0|Backend
+
+|io.springfox.springfox-swagger-ui|2.9.2
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.boot.spring-boot-starter-test|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.security.spring-security-test|5.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.powermock.powermock-reflect|2.0.0
+a|
+||Apache License 2.0|Backend
+
+|com.h2database.h2|1.4.200
+a|
+||EPL|Backend
+
+|org.springframework.cloud.spring-cloud-dependencies|Hoxton.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.springframework.boot.spring-boot-maven-plugin|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
+|org.jacoco.jacoco-maven-plugin|0.7.9
+a|
+||EPL 2.0|Backend
+
+|org.sonarsource.scanner.maven.sonar-maven-plugin|3.2
+a|
+||LGPL 3.0|Backend
+
+|org.asciidoctor.asciidoctor-maven-plugin|1.5.3
+a|
+||Apache License 2.0|Backend
+
+
+|org.jruby.jruby-complete|9.0.0.0
+a|
+||EPL 2.0|Backend
+
+|org.asciidoctor.asciidoctorj-pdf|1.5.0-alpha.11
+a|
+||Apache 2.0|Backend
+
+
+|org.asciidoctor.asciidoctorj|1.5.4
+a|
+||Apache 2.0|Backend
+
+
+|org.asciidoctor.asciidoctorj-pdf|1.5.0-alpha.11
+a|
+||Apache 2.0|Backend
+
+
+|org.asciidoctor.asciidoctorj-diagram|1.5.4.1
+a|
+||Apache 2.0|Backend
+
+
+|Angular Font Awesome|3.1.2
+a|
+||MIT License|Frontend
+
+
+|@auth0/angular-jwt|3.0.1
+a|
+||MIT License|Frontend
+
+
+|font-awesome|4.7.0
+a|
+||MIT License|Frontend
+
+
+|@ngrx/core|1.2.0
+a|
+||MIT License|Frontend
+
+
+|@ngrx/effects|8-2-0
+a|
+||MIT License|Frontend
+
+
+|@ngrx/store|8.3.0
+a|
+||MIT License|Frontend
+
+
+|@ngrx/store-devtools|8.2.0
+a|
+||MIT License|Frontend
+
+
+|@ngx-translate/core|11.0.1
+a|
+||MIT License|Frontend
+
+
+|@ngx-translate/http-loader|4.0.0
+a|
+||MIT License|Frontend
+
+
+|ag-grid-angular|21.2.1
+a|
+||MIT License|Frontend
+
+
+|ag-grid-community|21.2.1
+a|
+||MIT License|Frontend
+
+
+|angular2-notifications|2.0.0
+a|
+||MIT License|Frontend
+
+
+|bootstrap|4.4.1
+a|
+||MIT License|Frontend
+
+
+|jquery|3.4.1
+a|
+||MIT License|Frontend
+
+
+|classlist.js|1.1.20150312
+a|
+||MIT License|Frontend
+
+
+|core-js|3.2.1
+a|
+||MIT License|Frontend
+
+
+|moment|2.24.0
+a|
+||MIT License|Frontend
+
+
+|ng2-popover|0.0.14
+a|
+||MIT License|Frontend
+
+
+|ngrx-forms|5.2.1
+a|
+||MIT License|Frontend
+
+
+|npm-install-peers|1.2.1
+a|
+||MIT License|Frontend
+
+
+|reselect|4.0.0
+a|
+||MIT License|Frontend
+
+
+|rxjs|6.5.3
+a|
+||MIT License|Frontend
+
+
+|rxjs-compat|6.5.4
+a|
+||MIT License|Frontend
+
+
+|ts-helpers|1.1.2
+a|
+||MIT License|Frontend
+
+
+|tslib|1.10.0
+a|
+||MIT License|Frontend
+
+
+|web-animations-js|2.3.2
+a|
+||MIT License|Frontend
+
+
+|zone.js|0.10.1
+a|
+||MIT License|Frontend
+
+
+|@swimlane/ngx-datatable|15.0.2
+a|
+||MIT License|Frontend
+
+
+|puppeteer|2.0.0
+a|
+||MIT License|Frontend
+
+
+|ngx-toastr|11.2.1
+a|
+||MIT License|Frontend
+
+|popper.js|1.16.0
+a|
+||MIT License|Frontend
+
+|@ng-bootstrap|5.1.5
+a|
+||MIT License|Frontend
+
+
+|=========================================================
+
+== System Scope and Context
+
+=== Business Context
+
+The core module 'Contact Base Data' communicates via Restful Webservices with the follwowing modules:
+
+* *Core Module 'Auth & Auth'* The 'Contact Base Data' can only be used by authorized users.
+Therefore, it is essential to invoke the module 'Auth & Auth' for authorization and authentication
+purposes.
+
+
+=== Technical Context
+
+The following aspects have to be taken into account for external communication of the module 'Contact Base Data':
+
+* RESTful web services are used as interface-technology.
+* Each external interface (interfaces between modules or external systems) has to be documented.
+* Dependencies of modules to services realized by other modules have to be specified and documented explicitly.
+
+The interfaces of the module 'Contact Base Data' are described in the interface documentation.
+
+=== Solution Strategy
+
+The module 'Contact Base Data' is based on a three-tier architecture:
+
+. *Frontend* - The GUI is implemented as a web-frontend with rich-client functionality.
+. *Backend* - The business functionalities are implemented in the backend tier. It provides the business functions via RESTful Webservices.
+. *Database* - The database stores all module specific data.
+
+
+== Building Block View
+
+=== Whitebox Overall System
+
+The module 'Contact Base Data' contains two components (see figure 2):
+
+. *UI* - Represents the graphical user interface and consumes the services from the business logic component via RESTful webservices.
+. *Business Logic* - Realizes the business functionality and the data storage of the module. The
+module itself is split up into several components due to the requirement to use
+microservices.
+
+.Module components
+[options="header,footer"]
+[plantuml]
+----
+node Module {
+    rectangle UI
+    rectangle BusinessLogic
+
+    interface REST
+
+    UI -> REST
+    REST -- BusinessLogic
+}
+----
+
+
+
+The communication between WebBrowser and Apache Tomcat is established via HTTP/HTTPS.
+ApacheTomcat is connected to the data source (PostgresDBMS) via TCP/IP.
+
+==== contactBaseDataFE
+
+This component implements the presentation logic for the *contact-base-data*-module using the *Angular*-TypeScript
+framework. The Frontend is a so called *Single Page Application* (SPA) because
+it behaves like a single HTML-page.
+
+
+==== contact-base-data.jar (backend tier)
+
+This component implements the business functionality of the contact base data. And it provides services, that the
+contactBaseDataFE can use the functions in the frontend.
+
+The "spring boot/spring cloud" framework is used to implement this application.
+
+==== ContactBaseDataDev-DB (Database tier)
+
+This component stores the data of the contact base data. It provides an interface to the contact-base-data.jar to create or
+change data in the database.
+
+The ContactBaseDataDev-DB runs on a Postgres DBMS.
+(The decision to use the Postgres DBMS was made by the openKONSEQUENZ architecture committee)
+
+=== Level 2
+
+==== ContactBaseDataFE (frontend tier)
+
+The frontend component implements the concept of a single-page application (SPA). The framework used is Angular 8.
+
+It divides the contactBaseDataFE into three layers:
+
+. *Components* - The components (pages, lists, dialogs, common comp.) represent the presentation layer and the control layer. A component contains the control logic (.ts-file), an HTML-fragment as presentation description (.html-file) and a style definition (.css-file).
+. *Services* - The service component communicates with the interfaces of the backend via HTTP requests by using the model component.
+. *Model* - The model corresponds to the view-model of the backend tier.
+
+.Frontend tier
+[options="header,footer"]
+[plantuml]
+----
+
+node contactBaseData_Frontend  {
+    component Model
+
+
+    node Components {
+        component "Pages"
+        component Lists
+        component "Common Components"
+    }
+
+    component Services
+
+    Components --> Services
+    Components --> Model
+    Services --> Model
+}
+
+node "Contact Base Data Backend (simplified)" {
+    component RestService
+    component ViewModel_API__DTO
+}
+
+Services .. RestService
+Model .. ViewModel_API__DTO
+RestService --> ViewModel_API__DTO
+----
+
+
+==== contact-base-data.jar (backend tier)
+
+The backend tier contains five components which can be summarized in three layers:
+
+. *Presentation layer* - Represented by
+.. REST-Srv
+.. View model/DTO
+. *Controller layer* - Represented by
+..	Controller
+..  Service
+.	*Model layer* - Represented by
+..  Repository
+..	Model
+
+
+
+.Backend tier
+[options="header,footer"]
+[plantuml]
+----
+
+node "Contact Base Data Backend"  {
+    component Model
+
+
+    component RestService
+
+    component ViewModel_DTO
+
+    component Controller
+
+    component Service
+
+    component Repository
+
+    RestService --> ViewModel_DTO
+    RestService --> Controller
+    Controller --> Service
+    Service --> Repository
+    Repository --> Model
+     }
+
+node DBMS {
+    component ContactBaseDataDB
+}
+
+Repository --> ContactBaseDataDB
+----
+
+==== ContactBaseData-DB (database tier)
+
+The ContactBaseData-DB is realized as a relational database system.
+
+.Database tier
+[options="header,footer"]
+[plantuml]
+----
+
+node DBMS {
+    component ContactBaseDataDB
+}
+----
+
+
+==== Program Configuration
+
+== Runtime view
+
+=== Login / authentication
+
+
+There is no login page, since the openK-Portal-Application is responsible for authentication and
+the whole SSO (single sign on) process.
+Therefore the application has to be started by providing a valid authentication token.
+This token is a JWT (JSON Web Token).
+
+.contactBaseData application is called by the *portal* application. The User is already logged in
+[plantuml]
+....
+actor User
+participant PortalFrontend
+participant PortalBackend
+participant ContactBaseDataFrontend
+entity ContactBaseDataStorage
+participant ContactBaseDataBackend
+
+
+User->PortalFrontend: Start ContactBaseData(JWT)
+PortalFrontend->ContactBaseDataFrontend: nav. to frontend-URL with JWT
+ContactBaseDataFrontend->ContactBaseDataStorage: Extract JWT and store token in session
+... some delay ...
+ContactBaseDataFrontend->ContactBaseDataBackend: Call any secured service with JWT
+group Call secured service
+
+    ContactBaseDataBackend->PortalBackend: "/checkAut(JWT)"
+    group Authorization succeeded
+        ContactBaseDataBackend->ContactBaseDataBackend: run service
+        ContactBaseDataBackend->ContactBaseDataFrontend: return service result
+    end
+    group Authorization failed
+        ContactBaseDataBackend->ContactBaseDataFrontend: return HTTP Code 401
+    end
+end
+....
+
+=== Deployment of the application components
+
+==== Deployment of the frontend
+
+See "howtoRun.pdf"
+
+==== Deployment of the backend
+
+See "howtoRun.pdf"
+
+==== Deployment of the database
+
+See "howtoRun.pdf"
+
+The component "Flyway" is used to make to distribute structural
+or content related changes to the database.
+
+The database is built out of the scripts in the directory "db/migrations". Every SQL
+script contains the complete db script for the contact base data database (in different versions).
+The highest version number indicates the currently valid script.
+
+==== Configuration of the system
+
+===== DB based configuration
+
+See "howtoRun.pdf"
+
+
+===== Configuration of the contact base data backend
+
+The backend service is configured in the * .yaml files, which are located in the JAR file.
+
+This yml-file can be divided into different configuration profiles.
+When starting the backend-service one has the possibility to specify
+the active profile.
+
+* *spring*:
+** *configuration*: Section for the database connection
+** *flyway*:
+*** *enabled*: (true or false) If enabled=true then the database migrations
+      will be performed automatically when starting the application
+      (this parameter should normally be set to "false")
+** *ldap*:
+*** *base*: The base LDAP path
+*** *port*: The LDAP server port
+*** *username*: Admin user of your LDAP
+*** *password*: Admin password
+*** *urls*: The URL of the LDAP server should be in the format ldap://myserver.example.com:10389.
+For SSL access, use the ldaps protocol and the appropriate port, e.g. ldaps://myserver.example.com:636
+
+* *ldap-sync*:
+** *attribute-mapping*:
+*** [not changeable variable in contact base data modul]: [attribute field name in your LDAP to be mapped].
+All possible mappings are:
+
+[source,yml]
+uid: uid
+fullname: cn
+lastname: sn
+firstname: givenname
+title: title
+mail: mail
+department: department
+telephone-number: phone
+
+** *db-id-mapping*:
+*** *telephone-number-id*: the primary ID for "telephone number" row in table REF_COMMUNICATION_TYPE.
+(Default 1) If set to -1 ldapmapping is disable for "telephone number"
+*** *mail-id*: the primary ID for "mail" row in table REF_COMMUNICATION_TYPE.
+(Default 2) If set to -1 ldapmapping is disable for "mail"
+** *scheduling*:
+*** *enabled*: (true or false) Switches LDAP synchronisation on/off
+*** *cron-expression*: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html[Cron Trigger Tutorial] +
+Spring Cron only takes 5 parameters not 6, the year is exlcuded! +
+Examples: '*/10 * * * * *' = every 10 seconds, '0 0 */3 ? * *' = every 3 hours, '0 0 0 * * ?' = every day at midnight.
+
+* *authnauth-sync*:
+** *attribute-mapping*:
+*** *lastname*:  (true or false) Switches AuthNAuth synchronisation of field Lastname on/off
+*** *firstname*:  (true or false) Switches AuthNAuth synchronisation of field Firstname on/off
+** *scheduling*:
+*** *enabled*: (true or false) Switches AuthNAuth synchronisation on/off
+*** *cron-expression*: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html[Cron Trigger Tutorial] +
+Spring Cron only takes 5 parameters not 6, the year is exlcuded! +
+Examples: '*/10 * * * * *' = every 10 seconds, '0 0 */3 ? * *' = every 3 hours, '0 0 0 * * ?' = every day at midnight.
+** *technical-username*: A technical user from the AuthNAuth modul doesn't have to be an admin
+** *technical-userpassword*: Technical user password
+
+* *server*:
+** *max-http-header-size*: Maximum size for the http-headers
+
+* *jwt*:
+** *tokenHeader*: Name of the http-header which carries the authentication-token.
+      (should be "Authorization")
+** *useStaticJwt*: If set to "true" then the backend will use *jwt.staticJwt*
+      as Authorization-token. (This won't work for calls to other modules
+      like the Auth'n'Auth-Modul, because the token will be out of date)
+* *services*:
+** *authNAuth*:
+*** *name*: authNAuthService
+
+* *authNAuthService*:
+** *ribbon*:
+*** *listOfServers*: Here one can configure the base
+URL to the Auth'n'Auth-service Example: http://entopkon:8880
+
+* *feign*:
+** *client*:
+*** *config*:
+**** *default*:
+***** *connectTimeout*: (Default 60000) Connection timeout for the REST-Calls (in ms).
+***** *readTimeout*: (Default 60000) Read timeout for the REST-Calls (in ms).
+
+* *cors*:
+** *corsEnabled*: (true or false) Cross-Origin Resource Sharing on/off
+
+=== CI- and CD-Components
+
+==== GIT-Repository
+Backend:
+https://git.eclipse.org/c/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.backend.git/
+
+Frontend:
+https://git.eclipse.org/c/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.frontend.git/
+
+=== Continuous deployment
+
+The continuous deployment is realized on two platforms:
+
+* the development platform (Dev-Environment)
+* the quality platform (Q-Environment)
+
+The automatic deployment on both of the environments is
+directly linked to the branches on the GIT-repositories:
+
+. "SNAPSHOT" or "DEVELOP"
+. "MASTER" or "TRUNC"
+
+The running development is exclusively made on the snapshot-branch. Every time
+a developer checks in (pushes) code to the repository, an automatic build
+starts on the hudson ci-server. If the snapshot-build is successful, then the result
+of that build is directly deployed on the dev-environment.
+
+At the end of a scrum sprint or when a big user story is realized, all
+code changes are merged from the *SNAPSHOT*-Branch to the *TRUNC*.
+This automatically triggers the build and the deployment on the
+Q-environment.
+
+
+== Design decisions
+
+All architecture decisions are based on the Architecture Committee Handbook. There are no deviations.
+
+== Risks and Technical Debts
+
+(Currently there aren't any known issues)
+
+<<<
+
+== Glossary
+
+.Abbreviations and glossary terms
+[options="header,footer"]
+|========================================================
+|Short|Long|German|Description
+|AC|Architecture Committee|Architektur-Komittee|Gives framework and constraints according to architecture for oK projects.
+|CNCU|Central Network Control Unit||
+|DAO|Data Access Objects||
+|DTO|Data Transfer Object||
+|DSO|Distribution System Operator|Verteilnetzbetreiber (VNB)|Manages the distribution network for energy, gas or water.
+|EPL|Eclipse Public License||Underlying license model for Eclipse projects like contact-base-data@openK
+|ESB|Enterprise Service Bus||Central instance to exchange data to overcome point-to-point connections.
+|oK|openKONSEQUENZ|openKONSEQUENZ|Name of the consortium of DSOs
+|QC|Quality Committee|Qualitätskomitee|Gives framework and constraints according to quality for oK projects.
+|SCADA|Supervisory Control and Data Acquisition|Netzleitsystem|System, that allows DSOs to view/control actual parameters of their power grid.
+|========================================================
diff --git a/src/main/asciidoc/howto/howtoBuild.adoc b/src/main/asciidoc/howto/howtoBuild.adoc
new file mode 100644
index 0000000..e92236c
--- /dev/null
+++ b/src/main/asciidoc/howto/howtoBuild.adoc
@@ -0,0 +1,70 @@
+= openKonsequenz - How to build the module "Contact Base Data"
+:Date: 2020-02-28
+:Revision: 1
+:icons:
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+<<<
+
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* installed and configured!
+
+== Requirements
+* Node.js 12.14.1
+* Angular-CLI
+
+== How to build the Backend
+How to build the Backend is described in `/deploy/`*get_started.txt*. Since you are reading this file you have most likely already
+have build the backend succesfully.
+
+== How to build the Frontend
+
+=== Install Node.js
+
+Node.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript (also Typescript which is a strongly typed form of JavaScript) code server-side.
+
+* Download Node.js 12.14.1 from https://nodejs.org/download/release/v12.14.1/ by clicking on a xxx.msi image for windows.
+* Run the downloaded Node.js .msi Installer - including accepting the license, selecting the destination, and authenticating for the install.
+This requires Administrator privileges, and you may need to authenticate
+* To ensure Node.js has been installed, run the following in your terminal - you should get something like v12.14.1
+
+[source,command]
+----
+    $ node -v
+----
+{blank}
+
+=== Update the npm Angular-CLI client
+This package manager comes bundled with Node.js and its good to have the latest version.
+
+* Open a command line and navigate to the root folder of the frontend project
+* Run the following commands (the version is defined in the package.json file):
+
+[source,command]
+----
+    $ npm install --save-dev @angular/cli
+----
+{blank}
+
+[source,command]
+----
+    $ npm install
+----
+{blank}
+
+=== Building the Frontend
+
+* Open a command line and navigate to the root folder of the frontend project
+* Run the following commands:
+
+[source,command]
+----
+    $ npm run build
+----
+{blank}
+
+
+TIP: Next Step -> Read the *howtoRun* file!
+
+
+
diff --git a/src/main/asciidoc/howto/howtoRun.adoc b/src/main/asciidoc/howto/howtoRun.adoc
new file mode 100644
index 0000000..c703116
--- /dev/null
+++ b/src/main/asciidoc/howto/howtoRun.adoc
@@ -0,0 +1,229 @@
+= openKonsequenz - How to run the module "Contact Base Data"
+:Date: 2020-02-28
+:Revision: 1
+:icons:
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+<<<
+
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* installed and configured!
+
+== Requirements
+* Browser (Chrome or Firefox)
+* `contact-base-data.jar` file after a successfully maven build located in `<backend project root>/target`.
+See `get_started.txt`.
+
+== Prerequisites
+
+* *To see this application running you have to run Portal application too.* The reason is the authentication, which happened in the Portal login phase.
+
+== Configure Keycloak
+Login into your Keycloak Admin Console and add the following Roles:
+
+* kon-access
+* kon-admin
+* kon-reader
+* kon-writer
+
+* Option 1: Add/Edit users manually to/in Keycloak (see *Portal (Auth n Auth)* documents (not included here)) with the according roles.
+* Option 2: You can also use the  `deploy/keycloak/addKeycloakUsersCDB.sh` script to add users. Adjust the script accordingly.
+The script has to be copied and executed within the bin folder of the Keycloak installation `[keycloakRootFolder]/bin`.
+
+
+== Install and configure Apache Tomcat
+Tomcat is an open-source Java Servlet Container and provides a "pure Java" HTTP web server environment in which Java code can run.
+
+* Download Tomcat version 8.x.xx from https://archive.apache.org/dist/tomcat/tomcat-8/
+and extract it (apache-tomcat-8-x-xx.zip).
+* Place the extracted folder on your C drive.
+
+
+== Install and deploy the Database
+
+Use any software for databases which is compatible to postgreSQL, we suggest pgAdmin 3:
+
+. Download and install pgAdmin (version 3 is used during developing process) from:
+        https://www.pgadmin.org/download/
+. Create a database example: `ContactBaseDataDbProd`
+. Create a Role with name `CBD_SERVICE` and a password. You can either use the script
+in  `<backend project root>/deploy/db/01_createRole.sql` (edit the password beforehand) or do it manually with pgAdmin.
+. Execute the sql script `<backend project root>/deploy/db/02_create_tables_with_example_data.sql`
+
+The Database is now ready to use and filled with some example data. If you want to clean the example data execute the sql script
+`<backend project root>/deploy/db/03_clean_example_data.sql`
+
+== How to run the Backend
+
+Put the `contact-base-data.jar` (see Requirements) in a folder of your choice.
+Copy the file `application.yml` from `<backend project root>/src/main/resources/application.yml` next to your `contact-base-data.jar`.
+Configure your copied `application.yml` according to your desired and mandatory settings. See next paragraph for an explanation of each
+option.
+
+=== Configuration of the Contact Base Data Backend
+
+The backend service is configured with the `application.yml` file.
+
+==== Profiles
+This yml-file can be divided into different configuration profiles.
+When starting the backend-service one has the possibility to specify
+the active profile with the -D flag (more on that later).
+If no active profile is selected the "Default" profile will be used.
+The "Default" profile starts at the beginning of the file and ends at the first "---".
+Profiles are divided by "---" and can be recognised by the keyword "spring: profiles: <profilename>".
+
+If a profile is missing a setting, it'll be taken from the "Default" profile.
+
+[source, txt]
+----
+[...]
+
+---
+
+spring:
+profiles: test
+
+[...]
+----
+
+==== Configuration Settings
+All possible configuration values located in the in application.yml and their explanation.
+
+* *spring*:
+** *datasource*: Section for the database connection
+*** url: jdbc:postgresql://serverdomain:port (default: 5432)/NameOfDatabase (Example: ContactBaseDataDbProd)
+*** username: cbd_service
+*** password: <password of cbd_service> see "Install and deploy the Database" point 3
+** *flyway*:
+*** *enabled*: (true or false) If enabled=true then the database migrations
+will be performed automatically when starting the application
+(this parameter should normally be set to "false")
+** *ldap*:
+*** *base*: The base LDAP path
+*** *port*: The LDAP server port
+*** *username*: Admin user of your LDAP
+*** *password*: Admin password
+*** *urls*: The URL of the LDAP server should be in the format ldap://myserver.example.com:10389.
+For SSL access, use the ldaps protocol and the appropriate port, e.g. ldaps://myserver.example.com:636
+
+* *ldap-sync*:
+** *db-id-mapping*:
+*** *telephone-number-id*: the primary ID for "telephone number" row in table REF_COMMUNICATION_TYPE.
+(Default: 1) If set to -1 ldapmapping is disable for "telephone number"
+*** *mail-id*: the primary ID for "mail" row in table REF_COMMUNICATION_TYPE.
+(Default: 2) If set to -1 ldapmapping is disable for "mail"
+** *scheduling*:
+*** *enabled*: (true or false) Switches LDAP synchronisation on/off
+*** *cron-expression*: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html[Cron Trigger Tutorial] +
+Spring Cron only takes 5 parameters not 6, the year is exlcuded! +
+Examples: '*/10 * * * * *' = every 10 seconds, '0 0 */3 ? * *' = every 3 hours, '0 0 0 * * ?' = every day at midnight.
+** *attribute-mapping*:
+*** [not changeable variable in contact base data modul]: [attribute field name in your LDAP to be mapped].All possible mappings are:
+[source,yml]
+----
+uid: uid
+fullname: cn
+lastname: sn
+firstname: givenname
+title: title
+mail: mail
+department: department
+telephone-number: phone
+----
+
+* *authnauth-sync*:
+** *attribute-mapping*:
+*** *lastname*:  (true or false) Switches AuthNAuth synchronisation of field Lastname on/off
+*** *firstname*:  (true or false) Switches AuthNAuth synchronisation of field Firstname on/off
+** *scheduling*:
+*** *enabled*: (true or false) Switches AuthNAuth synchronisation on/off
+*** *cron-expression*: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html[Cron Trigger Tutorial] +
+Spring Cron only takes 5 parameters not 6, the year is exlcuded! +
+Examples: '*/10 * * * * *' = every 10 seconds, '0 0 */3 ? * *' = every 3 hours, '0 0 0 * * ?' = every day at midnight.
+** *technical-username*: A technical user from the AuthNAuth modul doesn't have to be an admin
+** *technical-userpassword*: Technical user password
+
+
+* *server*:
+** *port*: (Default: 9155) Port which is used for this backend server
+** *max-http-header-size*: Maximum size for the http-headers
+
+* *jwt*:
+** *tokenHeader*: Name of the http-header which carries the authentication-token.
+(should be "Authorization")
+** *useStaticJwt*: If set to "true" then the backend will use *jwt.staticJwt*
+as Authorization-token. (This won't work for calls to other modules
+like the Auth'n'Auth-Modul, because the token will be out of date)
+* *services*:
+** *authNAuth*:
+*** *name*: authNAuthService
+
+* *authNAuthService*:
+** *ribbon*:
+*** *listOfServers*: Here one can configure the base
+URL to the Auth'n'Auth-service Example: http://entopkon:8880.
+The server where the Auth'n'Auth modul is installed.
+
+* *feign*:
+** *client*:
+*** *config*:
+**** *default*:
+***** *connectTimeout*: (Default: 60000) Connection timeout for the REST-Calls (in ms).
+***** *readTimeout*: (Default: 60000) Read timeout for the REST-Calls (in ms).
+
+* *cors*:
+** *corsEnabled*: (Default: false) (true or false) Cross-Origin Resource Sharing on/off
+
+=== Starting the Backend
+
+To execute the backend with the "Default" profile just run the command:
+
+[source,command]
+----
+    $ java -jar ./contact-base-data.jar qserver
+----
+To execute the backend with for example the profile "qserver" run the command:
+
+[source,command]
+----
+    $ java -Dspring.profiles.active=qserver -jar ./contact-base-data.jar qserver
+----
+
+IMPORTANT: Make sure you have set "corsEnabled" to true in your Production environment since
+Frontend (Tomcat) and Backend (Spring Application) will run on different ports!
+
+TIP: It's recommend to install the execution of the Backend as a System Service (Win/Linux).
+
+== How to run the Frontend
+
+=== Configure your Webserver
+Frontend (Tomcat) and Backend (Spring Application) will run on different ports you need to configure
+your webserver to proxy the request coming form the Frontend to the Backend.
+The following is an example configuration for an Apache HTTP Server (Webserver) for port 80.
+
+[source,conf]
+----
+
+<VirtualHost *:80>
+
+        # Kontaktstammdaten
+        ProxyPass /contactdatabase/api http://localhost:9155
+
+</VirtualHost>
+
+----
+
+`http://localhost:9155` is the location of the Backend. The port has to be adjusted according to your settings made in
+see section "How to run the Backend" -> "Configuration of the Contact Base Data Backend" -> "Configuration Settings" -> "Server:" "Port:"
+
+
+=== Deploying the Frontend
+
+. Create a folder named `contactdatabase` in `<tomcat>/webapps` folder
+. After building the Frontend (see `howtoBuild` file) copy the content of the `dist` folder to `<tomcat>/webapps/contactdatabase`
+. Start your Tomcat
+
+Now log in with the "Portal Application" and open the "Contact Base Data" module. If it shows the overview and the its example data
+the application was successfully deployed.
+
+
diff --git a/src/main/asciidoc/images/abbrechen.png b/src/main/asciidoc/images/abbrechen.png
new file mode 100644
index 0000000..4c4abb2
--- /dev/null
+++ b/src/main/asciidoc/images/abbrechen.png
Binary files differ
diff --git a/src/main/asciidoc/images/abmelden.png b/src/main/asciidoc/images/abmelden.png
new file mode 100644
index 0000000..db1eb04
--- /dev/null
+++ b/src/main/asciidoc/images/abmelden.png
Binary files differ
diff --git a/src/main/asciidoc/images/admin-menue-symbol.png b/src/main/asciidoc/images/admin-menue-symbol.png
new file mode 100644
index 0000000..24c32dd
--- /dev/null
+++ b/src/main/asciidoc/images/admin-menue-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/adresse-anlegen.png b/src/main/asciidoc/images/adresse-anlegen.png
new file mode 100644
index 0000000..f73886d
--- /dev/null
+++ b/src/main/asciidoc/images/adresse-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/adresseliste-gefuellt.png b/src/main/asciidoc/images/adresseliste-gefuellt.png
new file mode 100644
index 0000000..3ad145d
--- /dev/null
+++ b/src/main/asciidoc/images/adresseliste-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/images/adressliste-leer.png b/src/main/asciidoc/images/adressliste-leer.png
new file mode 100644
index 0000000..d09b5a3
--- /dev/null
+++ b/src/main/asciidoc/images/adressliste-leer.png
Binary files differ
diff --git a/src/main/asciidoc/images/adresstyp-anlegen.png b/src/main/asciidoc/images/adresstyp-anlegen.png
new file mode 100644
index 0000000..eb6ff9e
--- /dev/null
+++ b/src/main/asciidoc/images/adresstyp-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/adresstypen-uebersicht.png b/src/main/asciidoc/images/adresstypen-uebersicht.png
new file mode 100644
index 0000000..dce5123
--- /dev/null
+++ b/src/main/asciidoc/images/adresstypen-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/images/anpsrechpartner-leer.png b/src/main/asciidoc/images/anpsrechpartner-leer.png
new file mode 100644
index 0000000..5c0436e
--- /dev/null
+++ b/src/main/asciidoc/images/anpsrechpartner-leer.png
Binary files differ
diff --git a/src/main/asciidoc/images/anrede-anlegen.png b/src/main/asciidoc/images/anrede-anlegen.png
new file mode 100644
index 0000000..f5f34a2
--- /dev/null
+++ b/src/main/asciidoc/images/anrede-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/ansprechpartner-anlegen.png b/src/main/asciidoc/images/ansprechpartner-anlegen.png
new file mode 100644
index 0000000..f57a9ca
--- /dev/null
+++ b/src/main/asciidoc/images/ansprechpartner-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/ansprechpartner-gefuellt.png b/src/main/asciidoc/images/ansprechpartner-gefuellt.png
new file mode 100644
index 0000000..3b44ee2
--- /dev/null
+++ b/src/main/asciidoc/images/ansprechpartner-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/images/auge-symbol.png b/src/main/asciidoc/images/auge-symbol.png
new file mode 100644
index 0000000..455abd2
--- /dev/null
+++ b/src/main/asciidoc/images/auge-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/auswahl-kontakt-anlegen.png b/src/main/asciidoc/images/auswahl-kontakt-anlegen.png
new file mode 100644
index 0000000..a427896
--- /dev/null
+++ b/src/main/asciidoc/images/auswahl-kontakt-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/auswahl-kontakttypen.png b/src/main/asciidoc/images/auswahl-kontakttypen.png
new file mode 100644
index 0000000..5d1bc27
--- /dev/null
+++ b/src/main/asciidoc/images/auswahl-kontakttypen.png
Binary files differ
diff --git a/src/main/asciidoc/images/auswahl-sortierung-2.png b/src/main/asciidoc/images/auswahl-sortierung-2.png
new file mode 100644
index 0000000..319866f
--- /dev/null
+++ b/src/main/asciidoc/images/auswahl-sortierung-2.png
Binary files differ
diff --git a/src/main/asciidoc/images/auswahl-sortierung.png b/src/main/asciidoc/images/auswahl-sortierung.png
new file mode 100644
index 0000000..63ef815
--- /dev/null
+++ b/src/main/asciidoc/images/auswahl-sortierung.png
Binary files differ
diff --git a/src/main/asciidoc/images/beantragen.png b/src/main/asciidoc/images/beantragen.png
new file mode 100644
index 0000000..88044aa
--- /dev/null
+++ b/src/main/asciidoc/images/beantragen.png
Binary files differ
diff --git a/src/main/asciidoc/images/button_tabelle_kalender.jpg b/src/main/asciidoc/images/button_tabelle_kalender.jpg
new file mode 100644
index 0000000..92a33ce
--- /dev/null
+++ b/src/main/asciidoc/images/button_tabelle_kalender.jpg
Binary files differ
diff --git a/src/main/asciidoc/images/dateien_hochladen.png b/src/main/asciidoc/images/dateien_hochladen.png
new file mode 100644
index 0000000..c07d4be
--- /dev/null
+++ b/src/main/asciidoc/images/dateien_hochladen.png
Binary files differ
diff --git a/src/main/asciidoc/images/dialog-nach-abbrechen.png b/src/main/asciidoc/images/dialog-nach-abbrechen.png
new file mode 100644
index 0000000..fa13b42
--- /dev/null
+++ b/src/main/asciidoc/images/dialog-nach-abbrechen.png
Binary files differ
diff --git a/src/main/asciidoc/images/dsgvo-anonymisieren-hinweis.png b/src/main/asciidoc/images/dsgvo-anonymisieren-hinweis.png
new file mode 100644
index 0000000..6a90519
--- /dev/null
+++ b/src/main/asciidoc/images/dsgvo-anonymisieren-hinweis.png
Binary files differ
diff --git a/src/main/asciidoc/images/dsgvo-anonymisieren-vorher.png b/src/main/asciidoc/images/dsgvo-anonymisieren-vorher.png
new file mode 100644
index 0000000..a828b7c
--- /dev/null
+++ b/src/main/asciidoc/images/dsgvo-anonymisieren-vorher.png
Binary files differ
diff --git a/src/main/asciidoc/images/dsgvo-module.png b/src/main/asciidoc/images/dsgvo-module.png
new file mode 100644
index 0000000..1652bb1
--- /dev/null
+++ b/src/main/asciidoc/images/dsgvo-module.png
Binary files differ
diff --git a/src/main/asciidoc/images/dsgvo-suche.png b/src/main/asciidoc/images/dsgvo-suche.png
new file mode 100644
index 0000000..0338145
--- /dev/null
+++ b/src/main/asciidoc/images/dsgvo-suche.png
Binary files differ
diff --git a/src/main/asciidoc/images/einzelmassnahme-loeschen.png b/src/main/asciidoc/images/einzelmassnahme-loeschen.png
new file mode 100644
index 0000000..f74a18c
--- /dev/null
+++ b/src/main/asciidoc/images/einzelmassnahme-loeschen.png
Binary files differ
diff --git a/src/main/asciidoc/images/email-verteiler.png b/src/main/asciidoc/images/email-verteiler.png
new file mode 100644
index 0000000..52966ce
--- /dev/null
+++ b/src/main/asciidoc/images/email-verteiler.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_datum_grau.png b/src/main/asciidoc/images/erinnerung_datum_grau.png
new file mode 100644
index 0000000..069c12f
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_datum_grau.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_datum_orange.png b/src/main/asciidoc/images/erinnerung_datum_orange.png
new file mode 100644
index 0000000..f59a47b
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_datum_orange.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_datum_rot.jpg b/src/main/asciidoc/images/erinnerung_datum_rot.jpg
new file mode 100644
index 0000000..d5b4a64
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_datum_rot.jpg
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_glocke_grau.png b/src/main/asciidoc/images/erinnerung_glocke_grau.png
new file mode 100644
index 0000000..d4ea274
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_glocke_grau.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_glocke_orange.png b/src/main/asciidoc/images/erinnerung_glocke_orange.png
new file mode 100644
index 0000000..918723f
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_glocke_orange.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_glocke_rot.jpg b/src/main/asciidoc/images/erinnerung_glocke_rot.jpg
new file mode 100644
index 0000000..1ce63ec
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_glocke_rot.jpg
Binary files differ
diff --git a/src/main/asciidoc/images/externe-person-1.png b/src/main/asciidoc/images/externe-person-1.png
new file mode 100644
index 0000000..3b451b8
--- /dev/null
+++ b/src/main/asciidoc/images/externe-person-1.png
Binary files differ
diff --git a/src/main/asciidoc/images/filter_speichern.png b/src/main/asciidoc/images/filter_speichern.png
new file mode 100644
index 0000000..5a7d08a
--- /dev/null
+++ b/src/main/asciidoc/images/filter_speichern.png
Binary files differ
diff --git a/src/main/asciidoc/images/haus-symbol.png b/src/main/asciidoc/images/haus-symbol.png
new file mode 100644
index 0000000..4ace3d2
--- /dev/null
+++ b/src/main/asciidoc/images/haus-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/hilfe.png b/src/main/asciidoc/images/hilfe.png
new file mode 100644
index 0000000..b5c6f9e
--- /dev/null
+++ b/src/main/asciidoc/images/hilfe.png
Binary files differ
diff --git a/src/main/asciidoc/images/icons/caution.png b/src/main/asciidoc/images/icons/caution.png
new file mode 100644
index 0000000..9a8c515
--- /dev/null
+++ b/src/main/asciidoc/images/icons/caution.png
Binary files differ
diff --git a/src/main/asciidoc/images/icons/important.png b/src/main/asciidoc/images/icons/important.png
new file mode 100644
index 0000000..be685cc
--- /dev/null
+++ b/src/main/asciidoc/images/icons/important.png
Binary files differ
diff --git a/src/main/asciidoc/images/icons/note.png b/src/main/asciidoc/images/icons/note.png
new file mode 100644
index 0000000..7c1f3e2
--- /dev/null
+++ b/src/main/asciidoc/images/icons/note.png
Binary files differ
diff --git a/src/main/asciidoc/images/icons/tip.png b/src/main/asciidoc/images/icons/tip.png
new file mode 100644
index 0000000..f087c73
--- /dev/null
+++ b/src/main/asciidoc/images/icons/tip.png
Binary files differ
diff --git a/src/main/asciidoc/images/icons/warning.png b/src/main/asciidoc/images/icons/warning.png
new file mode 100644
index 0000000..d41edb9
--- /dev/null
+++ b/src/main/asciidoc/images/icons/warning.png
Binary files differ
diff --git a/src/main/asciidoc/images/interne-person-1.png b/src/main/asciidoc/images/interne-person-1.png
new file mode 100644
index 0000000..b9ff552
--- /dev/null
+++ b/src/main/asciidoc/images/interne-person-1.png
Binary files differ
diff --git a/src/main/asciidoc/images/interne-person-2.png b/src/main/asciidoc/images/interne-person-2.png
new file mode 100644
index 0000000..61fac82
--- /dev/null
+++ b/src/main/asciidoc/images/interne-person-2.png
Binary files differ
diff --git a/src/main/asciidoc/images/kommunikationskanaele-leer.png b/src/main/asciidoc/images/kommunikationskanaele-leer.png
new file mode 100644
index 0000000..1ddc182
--- /dev/null
+++ b/src/main/asciidoc/images/kommunikationskanaele-leer.png
Binary files differ
diff --git a/src/main/asciidoc/images/kommunikationskanal-anlegen.png b/src/main/asciidoc/images/kommunikationskanal-anlegen.png
new file mode 100644
index 0000000..55407a6
--- /dev/null
+++ b/src/main/asciidoc/images/kommunikationskanal-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/kommunikationskanal-gefuellt.png b/src/main/asciidoc/images/kommunikationskanal-gefuellt.png
new file mode 100644
index 0000000..83bf398
--- /dev/null
+++ b/src/main/asciidoc/images/kommunikationskanal-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/images/kommunikationstyp-nur-ansicht.png b/src/main/asciidoc/images/kommunikationstyp-nur-ansicht.png
new file mode 100644
index 0000000..80950be
--- /dev/null
+++ b/src/main/asciidoc/images/kommunikationstyp-nur-ansicht.png
Binary files differ
diff --git a/src/main/asciidoc/images/kommunikationstypen-anlegen.png b/src/main/asciidoc/images/kommunikationstypen-anlegen.png
new file mode 100644
index 0000000..4590ad0
--- /dev/null
+++ b/src/main/asciidoc/images/kommunikationstypen-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/kommunikationstypen-uebersicht.png b/src/main/asciidoc/images/kommunikationstypen-uebersicht.png
new file mode 100644
index 0000000..2cfe3e2
--- /dev/null
+++ b/src/main/asciidoc/images/kommunikationstypen-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/images/kontakte_uebersichtstabelle.png b/src/main/asciidoc/images/kontakte_uebersichtstabelle.png
new file mode 100644
index 0000000..2221e0e
--- /dev/null
+++ b/src/main/asciidoc/images/kontakte_uebersichtstabelle.png
Binary files differ
diff --git a/src/main/asciidoc/images/loesch-symbol.png b/src/main/asciidoc/images/loesch-symbol.png
new file mode 100644
index 0000000..22af7fa
--- /dev/null
+++ b/src/main/asciidoc/images/loesch-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung-fehler.png b/src/main/asciidoc/images/meldung-fehler.png
new file mode 100644
index 0000000..4dfa584
--- /dev/null
+++ b/src/main/asciidoc/images/meldung-fehler.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung-hinweis.png b/src/main/asciidoc/images/meldung-hinweis.png
new file mode 100644
index 0000000..cb9f0d9
--- /dev/null
+++ b/src/main/asciidoc/images/meldung-hinweis.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung-loeschen.png b/src/main/asciidoc/images/meldung-loeschen.png
new file mode 100644
index 0000000..9d70d50
--- /dev/null
+++ b/src/main/asciidoc/images/meldung-loeschen.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung_hinweis.png b/src/main/asciidoc/images/meldung_hinweis.png
new file mode 100644
index 0000000..e64fc27
--- /dev/null
+++ b/src/main/asciidoc/images/meldung_hinweis.png
Binary files differ
diff --git a/src/main/asciidoc/images/modul-zuordnen.png b/src/main/asciidoc/images/modul-zuordnen.png
new file mode 100644
index 0000000..3b56d58
--- /dev/null
+++ b/src/main/asciidoc/images/modul-zuordnen.png
Binary files differ
diff --git a/src/main/asciidoc/images/modulzuordnung-gefuellt.png b/src/main/asciidoc/images/modulzuordnung-gefuellt.png
new file mode 100644
index 0000000..0ab1681
--- /dev/null
+++ b/src/main/asciidoc/images/modulzuordnung-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/images/modulzuordnung-leer.png b/src/main/asciidoc/images/modulzuordnung-leer.png
new file mode 100644
index 0000000..20923b9
--- /dev/null
+++ b/src/main/asciidoc/images/modulzuordnung-leer.png
Binary files differ
diff --git a/src/main/asciidoc/images/neu.png b/src/main/asciidoc/images/neu.png
new file mode 100644
index 0000000..b9c37be
--- /dev/null
+++ b/src/main/asciidoc/images/neu.png
Binary files differ
diff --git a/src/main/asciidoc/images/oeffnen-modul.png b/src/main/asciidoc/images/oeffnen-modul.png
new file mode 100644
index 0000000..e031a76
--- /dev/null
+++ b/src/main/asciidoc/images/oeffnen-modul.png
Binary files differ
diff --git a/src/main/asciidoc/images/personentypen-anlegen.png b/src/main/asciidoc/images/personentypen-anlegen.png
new file mode 100644
index 0000000..4988a36
--- /dev/null
+++ b/src/main/asciidoc/images/personentypen-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/personentypen-uebersicht.png b/src/main/asciidoc/images/personentypen-uebersicht.png
new file mode 100644
index 0000000..67e3f2f
--- /dev/null
+++ b/src/main/asciidoc/images/personentypen-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/images/speichern.png b/src/main/asciidoc/images/speichern.png
new file mode 100644
index 0000000..74aec3a
--- /dev/null
+++ b/src/main/asciidoc/images/speichern.png
Binary files differ
diff --git a/src/main/asciidoc/images/stift-symbol.png b/src/main/asciidoc/images/stift-symbol.png
new file mode 100644
index 0000000..3c392e5
--- /dev/null
+++ b/src/main/asciidoc/images/stift-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/such-symbol.png b/src/main/asciidoc/images/such-symbol.png
new file mode 100644
index 0000000..2207a59
--- /dev/null
+++ b/src/main/asciidoc/images/such-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/suche-beispiel.png b/src/main/asciidoc/images/suche-beispiel.png
new file mode 100644
index 0000000..e44f831
--- /dev/null
+++ b/src/main/asciidoc/images/suche-beispiel.png
Binary files differ
diff --git a/src/main/asciidoc/images/tabellen-menue.png b/src/main/asciidoc/images/tabellen-menue.png
new file mode 100644
index 0000000..943eced
--- /dev/null
+++ b/src/main/asciidoc/images/tabellen-menue.png
Binary files differ
diff --git a/src/main/asciidoc/images/tabellenspalten-verschieben.png b/src/main/asciidoc/images/tabellenspalten-verschieben.png
new file mode 100644
index 0000000..0953ee8
--- /dev/null
+++ b/src/main/asciidoc/images/tabellenspalten-verschieben.png
Binary files differ
diff --git a/src/main/asciidoc/images/uebersicht-anrede.png b/src/main/asciidoc/images/uebersicht-anrede.png
new file mode 100644
index 0000000..4c9163f
--- /dev/null
+++ b/src/main/asciidoc/images/uebersicht-anrede.png
Binary files differ
diff --git a/src/main/asciidoc/images/unternehmen-2.png b/src/main/asciidoc/images/unternehmen-2.png
new file mode 100644
index 0000000..aa99aa2
--- /dev/null
+++ b/src/main/asciidoc/images/unternehmen-2.png
Binary files differ
diff --git a/src/main/asciidoc/images/unternehmen.png b/src/main/asciidoc/images/unternehmen.png
new file mode 100644
index 0000000..d2e344b
--- /dev/null
+++ b/src/main/asciidoc/images/unternehmen.png
Binary files differ
diff --git a/src/main/asciidoc/userDocumentation/userDocumentation.adoc b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
new file mode 100644
index 0000000..986320f
--- /dev/null
+++ b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
@@ -0,0 +1,789 @@
+= Benutzerhandbuch: Kontaktstammdaten
+
+<<<
+
+
+* Version: 1.0.1
+* Datum: 25.02.2020
+* Status: Final
+
+<<<
+
+:Author: Dr. Michel Alessandrini
+:Email: michel.alessandrini@pta.de
+
+:Date: 2020-02-25
+:Revision: 1.0.1
+
+:icons:
+
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+:lang: de
+:encoding: utf-8
+
+:imagesdir: ../images
+:iconsdir: ../images/icons
+
+:toc:
+:toclevels: 4
+:toc-title: Inhaltsverzeichnis
+:toc-placement!:
+:sectanchors:
+:numbered:
+
+toc::[]
+
+<<<
+
+== Sinn und Zweck des Moduls Kontaktstammdaten
+
+Das Modul Kontaktstammdaten ist ein Domain-Modul der openKONSEQUENZ-Plattform.
+
+Das Modul Kontaktstammdaten übernimmt die Verwaltung aller Kontaktdaten
+in einer openKONSEQUENZ-Installation. D.h. es synchronisiert sich mit den
+Benutzern des Auth&Auth-Moduls oder mit dem Unternehmens-LDAP. Des Weiteren
+verwaltet es alle (Internen und Externen) Personen sowie Unternehmen, die in den
+User Modulen benötigt werden.
+
+Das Modul Kontaktstammdaten ist somit die zentrale Stelle zur Verwaltung
+aller Kontakte und personenbezogener Daten in einer openKONSEQUENZ-Installation.
+Es setzt die DSGVO-Vorgaben um.
+
+<<<
+
+
+[[uebersicht-benutzerrollen]]
+== Benutzerrollen und Aufgaben
+Zur Bearbeitung von Kontaktstammdaten sind folgende Benutzerrollen
+definiert.
+
+[[lesende-rolle]]
+=== Lesende Rolle
+* <<uebersicht-aller-kontakte,Darf alle Kontakte sehen>>
+* <<suche-suche,Darf nach Kontakten suchen>>
+
+[[schreibende-rolle]]
+=== Schreibende Rolle
+* <<lesende-rolle,Darf alles, was die Lesende Rolle darf>>
+* <<kontakt-erstellen,Darf neue Kontakte anlegen>>
+* <<kontakt-bearbeiten,Darf bestehende Kontakte bearbeiten>>
+* <<ansprechparter-loeschen,Darf Ansprechpartner eines Unternehmens entfernen>>
+* <<dsgvo-funktionen,Darf DSGVO-Funktionen ausführen>>
+
+[[admin-rolle]]
+=== Administrator
+* <<schreibende-rolle,Darf alles, was die Schreibende Rolle darf>>
+* <<verwaltung-stammdaten,Darf Stammdaten anlegen, bearbeiten, löschen>>
+
+
+<<<
+
+== Verwaltung der Kontakte
+
+[[uebersicht-aller-kontakte]]
+=== Übersicht
+Die Übersichtsseite stellt standardmäßig alle Kontakte
+in einer Tabelle dar.
+
+.Übersicht der Kontakte
+[options="header,footer"]
+image::kontakte_uebersichtstabelle.png[]
+
+Die Übersichtstabelle zeigt zu jedem Kontakt folgende Informationen an:
+
+.Felder in der Tabellenübersicht
+[options="header"]
+|=========================================================
+|Feld|Erläuterung
+|Name
+a|
+ * Name des Kontakts (Personen- oder Firmen-Name)
+
+|E-Mail
+a|
+
+* E-Mail-Adresse des Kontakts
+
+|Kontakttyp
+a|
+
+* Unternehmen
+* Interne Person
+* Externe Person
+* Ansprechpartner
+
+|Notiz
+a|
+
+* Bemerkung bzw. Hinweis zu einem Kontakt
+
+|Hauptadresse
+a|
+
+* Primäre Anschrift
+
+|(ohne Überschrift)
+a|
+
+* Benutzeraktionen, siehe <<uebersicht-bearbeitungssymbole, Symbole>>
+
+|=========================================================
+
+[[uebersicht-bearbeitungssymbole]]
+=== Kontakt anlegen, anzeigen, bearbeiten und löschen
+
+Jeder Kontakt kann direkt aus der Tabelle zur Anzeige oder zur Bearbeitung
+geöffnet werden.
+
+==== Kontakt anzeigen
+
+Über folgendes Symbol öffnet sich der entsprechende Kontakt zur Anzeige.
+
+.Auge-Symbol zum Anzeigen eines Kontakts
+[options="header,footer"]
+image::auge-symbol.png[]
+
+CAUTION: Das Auge-Symbol ist nur bei der "Lesenden Rolle" sichtbar.
+
+[[kontakt-bearbeiten]]
+==== Kontakt bearbeiten
+
+Über folgendes Symbol öffnet sich der entsprechende Kontakt
+zur Bearbeitung.
+
+.Stift-Symbol zum Bearbeiten eines Kontakts
+[options="header,footer"]
+image::stift-symbol.png[]
+
+CAUTION: Das Stift-Symbol ist nur bei der "Schreibenden Rolle" und der Rolle "Administrator" sichtbar.
+
+==== Kontakt löschen
+Kontakte können nicht entfernt, sondern lediglich <<dsgvo-anonymisieren,anonymisiert>> werden.
+Die einzige Ausnahme bilden die <<ansprechparter-loeschen,Ansprechpartner eines Unternehmens>>,
+die entfernt werden können.
+
+CAUTION: Anonymisieren und löschen ist nur bei der "Schreibenden Rolle" und der Rolle "Administrator" sichtbar.
+
+[[kontakt-erstellen]]
+==== Kontakt anlegen
+Ist ein Benutzer mit der Benutzerrolle "Schreibende Rolle" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Neuen Kontakt anlegen" einen
+neuen Kontakt hinzuzufügen.
+
+.Schaltfläche zum Erstellen von Kontakten
+[options="header,footer"]
+image::auswahl-kontakt-anlegen.png[]
+
+Hier muss der Bearbeiter den Kontakttyp bestimmen:
+
+.Kontakttypen
+[options="header"]
+|=========================================================
+|Kontakttyp|Erläuterung
+|Interner Kontakt
+a|
+ * Eine natürliche Person, die dem Unternehmen angehört
+
+|Externer Kontakt
+a|
+* Eine natürliche Person, die dem Unternehmen nicht angehört
+
+|Unternehmen
+a|
+* Eine juristische Person
+|=========================================================
+
+Anschließend öffnet sich die Eingabemaske für den ausgewählten Kontakttypen.
+
+
+=== Kontakttypen
+
+==== Interne Person
+Die Basisinformationen eines Kontakts befindet sich im oberen
+Teil des Benutzerdialogs.
+
+Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.
+
+.Basis-Informationen eines Kontakts am Beispiel einer internen Person
+[options="header,footer"]
+image::interne-person-1.png[]
+
+Eine interne Person besitzt folgende Attribute:
+
+.Attribute einer internen Person
+[options="header"]
+|=========================================================
+|Attribut     |Pflichtfeld    |Inhaltsart     |Beschreibung
+|Vorname      |nein           |Textfeld       |Vorname der natürlichen Person
+|Name         |ja             |Textfeld       |Nachname der natürlichen Person
+|Titel        |nein           |Textfeld       |z.B. Prof. oder Dr.
+|Anrede       |nein           |Auswahlfeld    |Auswahl einer Anrede, z.B. Herr oder Frau
+|Personentyp  |nein           |Auswahlfeld    |Auswahl eines Personentyps
+|LDAP User    |nein           |Textfeld       |Bezeichnung des Benutzers im Unternehmens-LDAP. Im linken Feld kann durch Erfassung eines Namens im LDAP gesucht werden. Der ausgewählte Benutzer (im rechten Feld) wird zur Synchronisation verwendet.
+|Portal User  |nein           |Textfeld       |Bezeichnung des Benutzers im Portal. Im linken Feld kann durch Erfassung eines Namens im Portal gesucht werden. Der ausgewählte Benutzer (im rechten Feld) wird zur Synchronisation verwendet.
+|Abteilung    |nein           |Textfeld       |Abteilung der Person
+|Notiz        |nein           |Textfeld       |Beliebige Hinweise zur Person
+|=========================================================
+
+Um den Kontakt zu speichern, muss die folgende Schaltfläche betätigt werden.
+
+.Schaltfläche zum Speichern
+[options="header,footer"]
+image::speichern.png[]
+
+Wenn die neu erfassten Daten nicht gespeichert werden sollen, dann ist folgende Schaltfläche zu drücken:
+
+.Schaltfläche zum Abbrechen (ohne speichern)
+[options="header,footer"]
+image::abbrechen.png[]
+
+Anschließend erscheint ein Dialog, der mit "Ja" zu bestätigen ist.
+
+.Dialog nach Abbrechen
+[options="header,footer"]
+image::dialog-nach-abbrechen.png[]
+
+==== Externe Person
+Die Basisinformationen eines Kontakts befindet sich im oberen
+Teil des Benutzerdialogs.
+
+Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.
+
+.Basis-Informationen eines Kontakts am Beispiel einer externen Person
+[options="header,footer"]
+image::externe-person-1.png[]
+
+Eine externe Person besitzt folgende Attribute:
+
+.Attribute einer externen Person
+[options="header"]
+|=========================================================
+|Attribut     |Pflichtfeld    |Inhaltsart     |Beschreibung
+|Vorname      |nein           |Textfeld       |Vorname der natürlichen Person
+|Name         |ja             |Textfeld       |Nachname der natürlichen Person
+|Titel        |nein           |Textfeld       |z.B. Prof. oder Dr.
+|Anrede       |nein           |Auswahlfeld    |Auswahl einer Anrede, z.B. Herr oder Frau
+|Personentyp  |nein           |Auswahlfeld    |Auswahl eines Personentyps
+|Notiz        |nein           |Textfeld       |Beliebige Hinweise zur Person
+|=========================================================
+
+==== Unternehmen
+Die Basisinformationen eines Kontakts befindet sich im oberen
+Teil des Benutzerdialogs.
+
+Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.
+
+.Basis-Informationen eines Kontakts am Beispiel eines Unternehmens
+[options="header,footer"]
+image::unternehmen.png[]
+
+Ein Unternehmen besitzt folgende Attribute:
+
+.Attribute eines Unternehmens
+[options="header"]
+|=========================================================
+|Attribut                |Pflichtfeld    |Inhaltsart     |Beschreibung
+|Name                    |ja             |Textfeld       |Nachname der natürlichen Person
+|Rechtsform              |nein           |Textfeld       |z.B. GmbH oder AG
+|Handelsregisternummer   |nein           |Textfeld       |Nummer in der Form HR A 11111
+|Notiz                   |nein           |Textfeld       |Beliebige Hinweise zum unternehmen
+|=========================================================
+
+==== Ansprechpartner
+Der Ansprechpartner ist kein eigener Kontakttyp. Dieser kann ausschließlich
+ <<ansprechpartner-unternehmen,über das Unternehmen erfasst werden, zudem der Ansprechpartner gehört.>>
+
+
+=== Weitere Informationen zu einem Kontakt
+Die Detailinformationen zu einem Kontakt befinden sich im unteren
+Teil der Erfassungsmaske in aufklappbaren Bereichen:
+
+.Detail-Informationen eines Kontakts
+[options="header,footer"]
+image::unternehmen-2.png[]
+
+CAUTION: Bei der Neu-Anlage eines Kontakts sind die Details zunächst nicht sichtbar. Erst nach dem Speichern und dem erneuten Aufruf des neuen Kontakts werden die folgenden Detailinformationen angezeigt.
+
+Dieser Bereich ist in folgende Abschnitte unterteilt:
+
+* Adressen
+* Kommunikationskanäle
+* Modulzuordnung
+* Ansprechpartner (nur bei Unternehmen)
+
+
+==== Adressen
+Die Adressliste beinhaltet alle Adressen der internen Person. Eine Adresse besteht aus folgenden Attributen:
+
+.Attribute einer Adresse (Kontakt-Detailinformationen)
+[options="header"]
+|=========================================================
+|Attribut           |Pflichtfeld    |Inhaltsart      |Beschreibung
+|Adresstyp          |ja             |Auswahlfeld     |Auswahl eines Adresstyps
+|Hauptadresse       |nein           |Checkbox        |Kennzeichen, ob dies die Hauptadresse ist (nur relevant, wenn mehrere Adressen vorhanden)
+|Postleitzahl       |nein           |Zahl            |Adressdaten
+|Ort                |nein           |Textfeld        |Adressdaten
+|Adresse (Zusatz)   |nein           |Textfeld        |Adressdaten
+|Straße             |nein           |Textfeld        |Adressdaten
+|Hausnummer         |nein           |Textfeld        |Adressdaten
+|WGS84-Zone         |nein           |Textfeld        |World Geodetic System 1984 für Positionsangaben
+|Längengrad         |nein           |Textfeld        |Geographische Länge: Ein Winkel, der ausgehend vom Nullmeridian (0°) bis 180° in östlicher und 180° in westlicher Richtung angegeben wird
+|Breitengrad        |nein           |Textfeld        |Geographische Breite: Angabe in Grad, Minuten und Sekunden
+|Google Maps URL    |nein           |Textfeld        |URL zu Google Maps mit den entsprechenden Parametern
+|Notiz              |nein           |Textfeld        |Beliebige Hinweise zur Person
+|=========================================================
+
+Der geöffnete Bereich sieht folgendermaßen aus:
+
+.Tabellenansicht der Adressen unter einem Kontakt
+[options="header,footer"]
+image::adresseliste-gefuellt.png[]
+
+Über die Schaltfläche "Neue Adresse anlegen" kann eine Adresse angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage einer Adresse unter einem Kontakt
+[options="header,footer"]
+image::adresse-anlegen.png[]
+
+
+==== Kommunikationskanäle
+Die Kommunikationskanäle beinhalten alle Kontaktinformationen. Ein Kommunikationskanal besteht aus folgenden Attributen:
+
+.Attribute eines Kommunikationskanals (Kontakt-Detailinformationen)
+[options="header"]
+|=========================================================
+|Attribut     |Pflichtfeld    |Inhaltsart      |Beschreibung
+|Typ          |ja             |Auswahlfeld     |Auswahl eines Kommunikationskanals
+|Daten        |nein           |Textfeld        |Kontaktinformationen des entsprechenden Kommunikationskanals
+|Notiz        |nein           |Textfeld        |Beliebige Hinweise zum Kommunikationskanal
+|=========================================================
+
+Der geöffnete Bereich sieht folgendermaßen aus:
+
+.Tabellenansicht der Kommunikationskanäle unter einem Kontakt
+[options="header,footer"]
+image::kommunikationskanal-gefuellt.png[]
+
+Über die Schaltfläche "Neuen Kommunikationskanal anlegen" kann ein Kommunikationskanal angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage eines Kommunikationskanals unter einem Kontakt
+[options="header,footer"]
+image::kommunikationskanal-anlegen.png[]
+
+[[zugeordnete-module]]
+==== Zugeordnete Module
+Die Modulzuordnung legt fest, in welchen Modulen der Kontakt genutzt wird.
+Des Weiteren kann hinterlegt werden, wie lange die Kontaktdaten mindestens
+aufbewahrt werden müssen und wann diese ablaufen.
+
+Eine Modulzuordnung besteht aus folgenden Attributen:
+
+.Attribute einer Modulzuordnung (Kontakt-Detailinformationen)
+[options="header"]
+|=========================================================
+|Attribut        |Pflichtfeld    |Inhaltsart      |Beschreibung
+|Modulname       |ja             |Auswahlfeld     |Auswahl eines openKONSEQUENZ-Moduls
+|Ablaufdatum     |nein           |Datum           |Zeitpunkt, ab wann die Kontaktdaten gemäß DSGVO gelöscht werden müssen
+|Löschsperre bis |nein           |Datum           |Zeitpunkt, bis wann die Kontaktdaten gemäß DSGVO nicht gelöscht werden dürfen
+|Notiz           |nein           |Textfeld        |Beliebige Hinweise zum Modul
+|=========================================================
+
+Der geöffnete Bereich sieht folgendermaßen aus:
+
+.Tabellenansicht der Modulzuordnungen unter einem Kontakt
+[options="header,footer"]
+image::modulzuordnung-gefuellt.png[]
+
+Über die Schaltfläche "Neue Modulzuordnung anlegen" kann eine Modulzuordnung angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage einer Modulzuordnung unter einem Kontakt
+[options="header,footer"]
+image::modul-zuordnen.png[]
+
+[[ansprechpartner-unternehmen]]
+==== Ansprechpartner (nur bei Unternehmen)
+Die Ansprechpartner sind Personen, die zu einem Unternehmen gehören. Deshalb gibt es diese Daten nur bei dem Kontakttyp Unternehmen.
+Ein Ansprechpartner besitzt folgende Attribute:
+
+.Attribute eines Ansprechpartners (Kontakt-Detailinformationen)
+[options="header"]
+|=========================================================
+|Attribut     |Pflichtfeld    |Inhaltsart     |Beschreibung
+|Vorname      |nein           |Textfeld       |Vorname des Ansprechpartners
+|Name         |ja             |Textfeld       |Nachname des Ansprechpartners
+|Titel        |nein           |Textfeld       |z.B. Prof. oder Dr.
+|Anrede       |nein           |Auswahlfeld    |Auswahl einer Anrede, z.B. Herr oder Frau
+|Personentyp  |nein           |Auswahlfeld    |Auswahl eines Personentyps
+|Notiz        |nein           |Textfeld       |Beliebige Hinweise zum Ansprechpartner
+|=========================================================
+
+Der geöffnete Bereich sieht folgendermaßen aus:
+
+.Tabellenansicht der Ansprechpartner unter einem Kontakt
+[options="header,footer"]
+image::ansprechpartner-gefuellt.png[]
+
+Über die Schaltfläche "Neuen Ansprechpartner anlegen" kann ein Ansprechpartner angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage eines Ansprechpartners unter einem Kontakt
+[options="header,footer"]
+image::ansprechpartner-anlegen.png[]
+
+[[ansprechparter-loeschen]]
+==== Löschen von weiteren Informationen eines Kontakts
+Über das folgende Symbol in der Tabelle kann der entsprechende Eintrag
+(Adresse, Kommunikationskanal, Modulzuordnung oder Ansprechpartner)
+gelöscht werden.
+
+.Löschen-Symbol
+[options="header,footer"]
+image::loesch-symbol.png[]
+
+CAUTION: Das Mülleimer-Symbol ist nur bei der "Schreibenden Rolle" und bei der Rolle "Administrator" sichtbar.
+
+CAUTION: Die Löschfunktion steht nur beim Kontakttyp "Ansprechpartner" zur Verfügung. Andere Kontakte können nicht gelöscht werden.
+
+Nach Klick auf das Löschen-Symbol erscheint ein Dialog, der mit "Ja" zu bestätigen ist.
+
+.Dialog nach Klick auf Löschen
+[options="header,footer"]
+image::meldung-loeschen.png[]
+
+
+<<<
+
+[[dsgvo-funktionen]]
+== DSGVO-Funktionen
+Das Modul Kontaktstammdaten ermöglicht für eine openKONSEQUENZ-Installation
+die zentrale Umsetzung der DSGVO-Aufgaben:
+
+* Alle Informationen zu einem Kontakt finden
+* Gültigkeitszeiträume für Personendaten festlegen
+* Sperrfristen für Personendaten festlegen
+* Abgelaufene Kontakte identifizieren
+* Kontakte anonymisieren
+
+[[dsgvo-erfassen]]
+=== Erfassung der DSGVO-Informationen zu einem Kontakt
+Kontaktdaten können grundsätzlich in mehreren openKONSEQUENZ-Modulen verwendet werden.
+Deshalb ist es bei jedem Kontakt (Interne und externe Person) möglich, die einzelnen
+Module bei den Detailinformationen unter <<zugeordnete-module,Zugeordnete Module>>
+zu erfassen.
+
+In diesem Vorgang können zu jeder Modulzuordnung weitere DSGVO-relevante Informationen
+hinterlegt werden:
+
+* openKONSEQUENZ-Modul: Modul, dass diesen Kontakt verwendet
+* Zuweisungsdatum: Wann der Kontakt erstmalig dem Modul verwendet wurde
+* Ablaufdatum: Zeitpunkt nachdem der Kontakt zu anonymisieren ist
+* Löschsperre bis: Zeitpunkt bis wann der Kontakt nicht anonymisiert werden darf
+
+Ein Beispiel für einen Kontakt mit mehreren Modulzuordnungen:
+
+.Beispiel Modulzuordnungen
+[options="header,footer"]
+image::dsgvo-module.png[]
+
+[[dsgvo-suche]]
+=== Abgelaufene Kontakte identifizieren
+In der Hauptübersicht befindet sich eine DSGVO-Suchfunktion. Mit dieser Suche
+können folgende DSGVO-Informationen abgefragt werden:
+
+* Auswahl Module
+* Ablaufdatum überschritten
+* Löschsperre abgelaufen
+
+Des Weiteren kann diese Suche mit den Such-Kriterien der Standardsuche kombiniert werden.
+Das folgende Beispiel zeigt eine Suche nach abgelaufenen Kontakten:
+
+.DSGVO-Suche
+[options="header,footer"]
+image::dsgvo-suche.png[]
+
+CAUTION: Es erfolgt keine automatische Anonymisierung nachdem das Ablaufdatum und/oder die Löschsperre abgelaufen sind.
+
+[[dsgvo-anonymisieren]]
+=== Kontakt anonymisieren
+Kontakte einer openKONSEQUENZ-Installation werden ausschließlich über das Modul
+Kontaktstammdaten anonymisiert. Dabei ist folgendes zu beachten:
+
+CAUTION: Das Anonymisieren von Kontakten erfolgt immer manuell und für jeden Kontakt einzeln.
+
+Des Weiteren sind entsprechende Berechtigungen notwendig:
+
+CAUTION: Für das Anonymisieren von Kontakten ist die "Schreibende Rolle" oder die Rolle "Administrator" notwendig.
+
+Sind alle Voraussetzung erfüllt, wird der Kontakt wird über das <<kontakt-bearbeiten,Bearbeiten-Symbol>> in der Haupttabelle
+aufgerufen, anschließend öffnet sich die Erfassungsmaske zur Bearbeitung eines
+Kontakts:
+
+.Kontaktansicht mit Anonymisieren-Button
+[options="header,footer"]
+image::dsgvo-anonymisieren-vorher.png[]
+
+Über die Schaltfläche "Anonymisieren" erfolgt das Unkenntlichmachen des Kontakts.
+Dazu wird der Name auf "* * *" geändert und alle anderen Felder geleert.
+
+Zuvor muss aber noch der folgende Dialog bestätigt werden:
+
+.Hinweis vor dem Anonymisieren
+[options="header,footer"]
+image::dsgvo-anonymisieren-hinweis.png[]
+
+Ist dies erfolgt, öffnet sich anschließend die Hauptansicht und der anonymisierte
+Kontakt ist nicht mehr auffindbar.
+
+CAUTION: Ein anonymisierter Kontakt kann nicht wiederhergestellt werden.
+
+<<<
+
+[[verwaltung-stammdaten]]
+== Verwaltung der Stammdaten
+Die Funktionen zur Verwaltung der Stammdaten verbirgt sich hinter dem folgenden
+Symbol in der Menüleiste:
+
+.Symbol zum Aufruf der Stammdaten-Verwaltung
+[options="header,footer"]
+image::admin-menue-symbol.png[]
+
+CAUTION: Die Stammdaten-Verwaltung ist nur für die Rolle "Administrator" verfügbar.
+
+Es können folgende Stammdaten bearbeitet werden:
+
+* Anreden
+* Adresstypen
+* Kommunikationstypen
+* Personentypen
+
+=== Anreden
+Nach dem Aufruf der Anreden-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Anreden:
+
+.Tabellenansicht der Anreden
+[options="header,footer"]
+image::uebersicht-anrede.png[]
+
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage von Anreden
+[options="header,footer"]
+image::anrede-anlegen.png[]
+
+
+=== Adresstypen
+Nach dem Aufruf der Adresstypen-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Adresstypen:
+
+.Tabellenansicht der Adresstypen
+[options="header,footer"]
+image::adresstypen-uebersicht.png[]
+
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage eines Adresstyps
+[options="header,footer"]
+image::adresstyp-anlegen.png[]
+
+
+=== Kommunikationstypen
+Nach dem Aufruf der Kommunikationstypen-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Kommunikationstypen:
+
+.Tabellenansicht der Kommunikationstypen
+[options="header,footer"]
+image::kommunikationstypen-uebersicht.png[]
+
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage eines Kommunikationstypens
+[options="header,footer"]
+image::kommunikationstypen-anlegen.png[]
+
+Einige Einträge sind in der Standardkonfiguration enthalten und dürfen somit
+nicht geändert werden. Diese sind in der Übersichtstabelle mit einem Auge-Symbol
+gekennzeichnet. Wird der entsprechende Eintrag über dieses Symbol geöffnet,
+so können keine Anpassungen vorgenommen werden.
+
+.Maske zur Ansicht eines Kommunikationstyps
+[options="header,footer"]
+image::kommunikationstyp-nur-ansicht.png[]
+
+
+=== Personentypen
+Nach dem Aufruf der Personentypen-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Personentypen:
+
+.Tabellenansicht der Personentypen
+[options="header,footer"]
+image::personentypen-uebersicht.png[]
+
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
+
+.Maske zur Anlage eines Personentyps
+[options="header,footer"]
+image::personentypen-anlegen.png[]
+
+
+[[meldungen-hinweise]]
+== Hinweise und Meldungen nach Benutzeraktionen
+Nach Benutzeraktionen erscheinen in bestimmten Fällen Meldungen des Systems,
+um den Benutzer:
+
+* Handlungsanweisungen zu geben,
+* über Fehler des Systems zu informieren.
+
+=== Erfolg einer Aktion
+Ist eine Benutzeraktion erfolgreich, so erscheint keine Meldung.
+
+=== Handlungsanweisung
+In einigen Situationen muss der Benutzer weitere Aktionen ausführen, damit die
+Handlung erfolgreich abgeschlossen werden kann. Diese gelb hinterlegten Hinweise
+erscheinen im folgenden Fall:
+
+* Fehlenden Informationen (Pflichtfelder füllen)
+* LDAP- und Auth&Auth-User dürfen für einen Kontakt nicht gleichzeitig synchronisiert werden
+
+.Hinweis Pflichtfelder
+[options="header,footer"]
+image::meldung-hinweis.png[]
+
+Diese Meldungen bleiben für fünf Sekunden sichtbar und verschwinden dann wieder
+automatisch.
+
+=== Fehlermeldungen
+Wenn Aktionen aufgrund technischer Gegebenheiten nicht erfolgreich durchgeführt
+werden können, erscheinen rot hinterlegte Fehlermeldungen. Das kann u.a. in
+folgenden Situationen passieren:
+
+* Speichern fehlgeschlagen
+* Web Services nicht verfügbar
+
+.Fehlermeldung
+[options="header,footer"]
+image::meldung-fehler.png[]
+
+Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer über das
+kleine x geschlossen werden. In diesen Fällen ist der Administrator zu
+informieren.
+
+<<<
+
+== Allgemeine Funktionen
+
+=== An- und abmelden
+
+==== Modul "Kontaktstammdaten" aus Portal starten
+Nach erfolgreicher Anmeldung am openKONSEQUENZ-Portal und mit entsprechender
+Berechtigung für das Modul "Kontaktstammdaten" ist die Kachel für das Modul
+sichtbar. Mit einem Klick auf die Kachel startet das Modul "Kontaktstammdaten"
+in einem neuen Fenster.
+
+.Kachel zum Starten des Moduls "Kontaktstammdaten"
+[options="header,footer"]
+image::oeffnen-modul.png[]
+
+==== Abmelden
+Die Schaltfläche zum Abmelden befindet sich hinter dem Benutzernamen.
+
+.Abmelden vom openKONSEQUENZ-System
+[options="header,footer"]
+image::abmelden.png[]
+
+CAUTION: Beim Klick auf "Abmelden" erfolgt nicht nur die Abmeldung vom Modul
+Kontaktstammdaten, sondern die Abmeldung vom Portal. D.h. alle parallel geöffneten
+openKONSEQUENZ-Module (wie z.B. Betriebstagebuch, Geplante Netzmaßnahme) werden
+automatisch mit abgemeldet.
+
+Um die parallel geöffneten openKONSEQUENZ-Module nicht mit abzumelden, ist
+lediglich das Browserfenster mit dem Modul Kontaktstammdaten zu schließen.
+
+=== Home-Button
+Über den folgenden Home-Button in der Menüleiste kann jederzeit zur Tabellenansicht
+zurückgekehrt werden.
+
+.Home-Button
+[options="header,footer"]
+image::haus-symbol.png[]
+
+CAUTION: Der Aufruf des Home-Buttons setzt die Suche, Filter und Sortierfunktion wieder zurück, sodass die Standardansicht wiederhergestellt ist.
+
+[[suche-suche]]
+=== Suche
+In der Übersicht ist eine Such-Funktion integriert, die eingegebenen Zeichen in
+den Datensätzen der Kontaktstammdaten sucht. Bei der Suche werden alle Felder
+berücksichtigt.
+
+.Suchfunktion
+[options="header,footer"]
+image::suche-beispiel.png[]
+
+Das Auswahlfeld "Kontakttypen" bestimmt den Suchumfang:
+
+* Alle Kontakttypen
+* Interne Personen
+* Externe Personen
+* Unternehmen
+* Ansprechpartner
+
+Die Suche wird direkt beim Eintippen des Suchbegriffs bzw. bei der Auswahl
+eines Filterkriteriums ausgeführt.
+
+Darüber hinaus steht eine <<dsgvo-suche,DSGVO-Suche>> zur Verfügung.
+
+[[sortieren]]
+=== Sortieren
+Die Sortierung in der Haupttabelle erfolgt über zwei Auswahlfelder:
+
+.Auswahl des Attributs für die Sortierung
+[options="header,footer"]
+image::auswahl-sortierung.png[]
+
+.Auswahl der Reihenfolge
+[options="header,footer"]
+image::auswahl-sortierung-2.png[]
+
+Nach Auswahl der entsprechenden Felder erfolgt die Suche automatisch.
+
+=== Hilfe
+Diese Benutzerdokumentation ist über das Hilfe-Symbol in der Kopfzeile erreichbar:
+
+.Hilfe-Symbol
+[options="header,footer"]
+image::hilfe.png[]
+
+=== Synchronisierung mit Verzeichnisdiensten
+Die Aktivierung der Synchronisierung der Kontaktstammdaten mit den Verzeichnisdiensten
+LDAP und/oder Auth&Auth erfolgt durch den Administrator.
+
+<<<
+
+== Kompatibilität
+Die Anwendung ist für folgende Endgeräte optimiert:
+
+* Desktop-PC
+* Tablet
+
+Es unterstützt folgende Browser:
+
+* Google Chrome
+* Firefox
+
+Die Bildschirmauflösung bzw. die Fenstergröße des Browsers sollte folgende
+Werte nicht unterschreiten:
+
+* 1.024 x 768 Pixel
+
+<<<