From 30be8e9ab181e99ac38ce8c3e69a01ed834601c4 Mon Sep 17 00:00:00 2001
From: Martin Vogel <martin.vogel@sinc.de>
Date: Thu, 9 Jun 2022 11:32:14 +0200
Subject: [PATCH] #414 Add interface/class structure

---
 README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index bef4b1a99..ba964056c 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,104 @@
 ## FIT-Co Java SDK
 
 ### Project Setup Info
+
 - Java 17 (LTS)
 - Maven
 - Junit 5
+
 ### Build
 
 To build the maven artifact, run: `mvn clean install`
+
 ####
+
 To run all tests, run: `mvn test`
 
 ### Modules
+
 The SDk is set up as a maven multi module to separate the (internal) API properly from implementation details
+
 #### API Module
-The api module consists of all domain model classes and (api-) public interfaces needed to build an sdk-client 
+
+The api module consists of all domain model classes and (api-) public interfaces needed to build an sdk-client
+
+### API Architecture
+
+## Structure
+
+```mermaid
+classDiagram
+
+
+  class DecryptionService{
+    + encryptString
+    + encryptBytes 
+   }
+
+  class EncryptionService{
+        + encryptString
+        + encryptBytes
+  }
+
+   class CertificateValidator{
+        + validatePublicKey
+  }
+
+    class MetadataValidator{
+        + validateMetadataSchema
+        + validateMetadataHashValues
+    }
+
+     class MetadataService{
+        + createMetadata
+    }
+
+      class OAuthService{
+   + authenticate
+  }
+
+    class SubmissionSender{
+        OAuthService
+        EncryptionService
+        CertificateValidator
+        MetadataService
+    }
+
+     class SubmissionSubscriber{
+        OAuthService
+        DecryptionService
+        MetadataValidator
+    }
+
+    class FitCoClient{
+        ClientFactory
+    }
+
+    FitCoClient  ..> ClientFactory : Uses
+    ClientFactory  ..> SubmissionSender : Creates
+    ClientFactory  ..> SubmissionSubscriber : Creates
+
+    SubmissionSender ..> CertificateValidator : Implements
+    SubmissionSender ..> EncryptionService : Implements
+    SubmissionSender ..> MetadataService : Implements
+    SubmissionSender ..> OAuthService : Implements
+
+
+    SubmissionSubscriber ..> OAuthService : Implements
+    SubmissionSubscriber ..> DecryptionService : Implements
+    SubmissionSubscriber ..> MetadataValidator : Implements
+
+```
 
 #### Client Module
+
 API implementations and Tests
 
 ### Documentation
+
 https://docs.fitko.de/fit-connect/docs/
 
 ### Self Service Portal (DEV)
+
 https://portal.auth-testing.fit-connect.fitko.dev/
 
-- 
GitLab