diff --git a/src/main/java/envoy/client/EnvoyClient.java b/src/main/java/envoy/client/EnvoyClient.java
new file mode 100644
index 0000000..ecb58b2
--- /dev/null
+++ b/src/main/java/envoy/client/EnvoyClient.java
@@ -0,0 +1,89 @@
+package envoy.client;
+
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.time.Instant;
+
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.Response;
+import javax.xml.bind.JAXBException;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+
+import envoy.client.ui.ChatWindow;
+import envoy.schema.Message;
+import envoy.schema.ObjectFactory;
+
+/**
+ * Project: envoy-client
+ * File: EnvoyClient.java
+ * Created: 28 Sep 2019
+ * Author: Kai S. K. Engelbart and Maximilian Käfer
+ */
+
+public class EnvoyClient {
+
+ public static String content1 = "";
+
+
+ /**
+ * Calls Class ChatWidow
+ */
+ public static void main(String[] args) throws DatatypeConfigurationException, JAXBException {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ ChatWindow frame = new ChatWindow();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ /**
+ * specifies data
+ * sends xml to server
+ * gets response from server (currently 204)
+ */
+ public static void sendMessage() throws DatatypeConfigurationException, JAXBException {
+
+ ObjectFactory factory = new ObjectFactory();
+
+ Message.MetaData metaData = factory.createMessageMetaData();
+ metaData.setSender("Kai");
+ metaData.setRecipient("Maxi");
+ metaData.setState(false);
+ metaData.setDate(DatatypeFactory.newInstance().newXMLGregorianCalendar(Instant.now().toString()));
+
+ Message.Content content = factory.createMessageContent();
+ content.setType("text");
+ content.setText(content1);
+
+ Message message = factory.createMessage();
+ message.setMetaData(metaData);
+ message.getContent().add(content);
+
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target("http://localhost:8080/envoy-server/rest/message/send");
+ Response response = target.request().post(Entity.entity(message, "application/xml"));
+ System.out.println("Response code: " + response.getStatus());
+ response.close();
+
+
+
+ }
+
+ /**
+ * sets content of xml to content from ChatWindow
+ */
+ public void setContent (String content2) {
+ content1 = content2;
+ }
+
+}
diff --git a/src/main/java/envoy/client/ui/ChatWindow.java b/src/main/java/envoy/client/ui/ChatWindow.java
new file mode 100644
index 0000000..dad7788
--- /dev/null
+++ b/src/main/java/envoy/client/ui/ChatWindow.java
@@ -0,0 +1,108 @@
+package envoy.client.ui;
+
+import java.awt.BorderLayout;
+import java.awt.EventQueue;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextPane;
+import javax.swing.border.EmptyBorder;
+import javax.xml.bind.JAXBException;
+import javax.xml.datatype.DatatypeConfigurationException;
+
+import envoy.client.EnvoyClient;
+
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import java.awt.GridBagConstraints;
+import java.awt.Color;
+
+/**
+ * Project: envoy-client
+ * File: ChatWindow.java
+ * Created: 28 Sep 2019
+ * Author: Maximilian Käfer
+ */
+
+public class ChatWindow extends JFrame {
+
+ private JPanel contentPane;
+ EnvoyClient envoyClient = new EnvoyClient();
+
+ public ChatWindow() {
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setBounds(100, 100, 600, 800);
+ contentPane = new JPanel();
+ contentPane.setBackground(new Color(220, 220, 220));
+ contentPane.setForeground(new Color(0, 0, 0));
+ contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+ setContentPane(contentPane);
+ GridBagLayout gbl_contentPane = new GridBagLayout();
+ gbl_contentPane.columnWidths = new int[]{1, 1, 1};
+ gbl_contentPane.rowHeights = new int[]{1, 1, 1};
+ gbl_contentPane.columnWeights = new double[]{0.3, 1.0, 0.1};
+ gbl_contentPane.rowWeights = new double[]{0.05, 1, 0.07};
+ contentPane.setLayout(gbl_contentPane);
+
+
+ // Message enter field ----------------------------------------------------------------------------
+ JTextArea messageEnterTextfield = new JTextArea();
+ messageEnterTextfield.setLineWrap(true);
+
+ GridBagConstraints gbc_moveSelectionMessageEnterTextfield = new GridBagConstraints();
+ gbc_moveSelectionMessageEnterTextfield.fill = GridBagConstraints.BOTH;
+ gbc_moveSelectionMessageEnterTextfield.gridx = 1;
+ gbc_moveSelectionMessageEnterTextfield.gridy = 2;
+
+ //gbc_moveSelectionMessageEnterTextfield.gridwidth = 10;
+
+ gbc_moveSelectionMessageEnterTextfield.insets = new Insets(10, 10, 10, 10);
+
+ contentPane.add(messageEnterTextfield, gbc_moveSelectionMessageEnterTextfield);
+
+
+ // Post Button -----------------------------------------------------------------------------------
+ JButton postButton = new JButton("Post");
+ postButton.setForeground(new Color(255, 255, 255));
+ postButton.setBackground(new Color(0, 100, 0));
+
+ GridBagConstraints gbc_moveSelectionPostButton = new GridBagConstraints();
+
+ gbc_moveSelectionPostButton.fill = GridBagConstraints.BOTH;
+ gbc_moveSelectionPostButton.gridx = 2;
+ gbc_moveSelectionPostButton.gridy = 2;
+
+ gbc_moveSelectionPostButton.insets = new Insets(10, 10, 10, 10);
+
+ contentPane.add(postButton, gbc_moveSelectionPostButton);
+
+
+ postButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ try {
+ if(messageEnterTextfield.getText().isEmpty() == false) {
+ envoyClient.setContent(messageEnterTextfield.getText());
+ envoyClient.sendMessage();
+ }
+
+ } catch (DatatypeConfigurationException | JAXBException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ }
+ });
+
+
+
+
+
+ }
+
+}
diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..aaa130c
--- /dev/null
+++ b/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Built-By: Maxi
+Build-Jdk: 12.0.1
+Created-By: Maven Integration for Eclipse
+
diff --git a/target/classes/META-INF/maven/informatik-ag-ngl/envoy-client/pom.properties b/target/classes/META-INF/maven/informatik-ag-ngl/envoy-client/pom.properties
new file mode 100644
index 0000000..d1fda1a
--- /dev/null
+++ b/target/classes/META-INF/maven/informatik-ag-ngl/envoy-client/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Sun Sep 29 16:49:31 CEST 2019
+m2e.projectLocation=C\:\\Users\\Maxi\\git\\envoy-client
+m2e.projectName=envoy-client
+groupId=informatik-ag-ngl
+artifactId=envoy-client
+version=0.0.1-SNAPSHOT
diff --git a/target/classes/META-INF/maven/informatik-ag-ngl/envoy-client/pom.xml b/target/classes/META-INF/maven/informatik-ag-ngl/envoy-client/pom.xml
new file mode 100644
index 0000000..d688c37
--- /dev/null
+++ b/target/classes/META-INF/maven/informatik-ag-ngl/envoy-client/pom.xml
@@ -0,0 +1,41 @@
+
+ 4.0.0
+
+ informatik-ag-ngl
+ envoy-client
+ 0.0.1-SNAPSHOT
+
+ Envoy Client
+ https://github.com/informatik-ag-ngl/envoy-client
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ 1.8
+
+
+
+
+ org.jboss.resteasy
+ resteasy-client
+ 4.1.1.Final
+
+
+ org.jboss.resteasy
+ resteasy-jaxb-provider
+ 4.3.1.Final
+
+
+ informatik-ag-ngl
+ envoy-common
+ 0.0.1-SNAPSHOT
+
+
+
+
+ envoy-client
+
+
\ No newline at end of file
diff --git a/target/classes/envoy/client/EnvoyClient$1.class b/target/classes/envoy/client/EnvoyClient$1.class
new file mode 100644
index 0000000..e179dc4
Binary files /dev/null and b/target/classes/envoy/client/EnvoyClient$1.class differ
diff --git a/target/classes/envoy/client/EnvoyClient.class b/target/classes/envoy/client/EnvoyClient.class
new file mode 100644
index 0000000..9d662b4
Binary files /dev/null and b/target/classes/envoy/client/EnvoyClient.class differ
diff --git a/target/classes/envoy/client/ui/ChatWindow$1.class b/target/classes/envoy/client/ui/ChatWindow$1.class
new file mode 100644
index 0000000..9c7d5d4
Binary files /dev/null and b/target/classes/envoy/client/ui/ChatWindow$1.class differ
diff --git a/target/classes/envoy/client/ui/ChatWindow.class b/target/classes/envoy/client/ui/ChatWindow.class
new file mode 100644
index 0000000..c87f196
Binary files /dev/null and b/target/classes/envoy/client/ui/ChatWindow.class differ