diff --git a/Server/.gradle/5.2.1/fileChanges/last-build.bin b/.gradle/5.2.1/fileChanges/last-build.bin
similarity index 100%
rename from Server/.gradle/5.2.1/fileChanges/last-build.bin
rename to .gradle/5.2.1/fileChanges/last-build.bin
diff --git a/Server/.gradle/5.2.1/gc.properties b/.gradle/5.2.1/gc.properties
similarity index 100%
rename from Server/.gradle/5.2.1/gc.properties
rename to .gradle/5.2.1/gc.properties
diff --git a/OOP-Project.iml b/OOP-Project.iml
index 0f21b76..b1907ae 100644
--- a/OOP-Project.iml
+++ b/OOP-Project.iml
@@ -1,16 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/.gradle/5.2.1/executionHistory/executionHistory.bin b/Server/.gradle/5.2.1/executionHistory/executionHistory.bin
deleted file mode 100644
index 3a1de33..0000000
Binary files a/Server/.gradle/5.2.1/executionHistory/executionHistory.bin and /dev/null differ
diff --git a/Server/.gradle/5.2.1/executionHistory/executionHistory.lock b/Server/.gradle/5.2.1/executionHistory/executionHistory.lock
deleted file mode 100644
index 8c61ca7..0000000
Binary files a/Server/.gradle/5.2.1/executionHistory/executionHistory.lock and /dev/null differ
diff --git a/Server/.gradle/5.2.1/fileContent/fileContent.lock b/Server/.gradle/5.2.1/fileContent/fileContent.lock
deleted file mode 100644
index b18cf80..0000000
Binary files a/Server/.gradle/5.2.1/fileContent/fileContent.lock and /dev/null differ
diff --git a/Server/.gradle/5.2.1/fileHashes/fileHashes.bin b/Server/.gradle/5.2.1/fileHashes/fileHashes.bin
deleted file mode 100644
index aa8687e..0000000
Binary files a/Server/.gradle/5.2.1/fileHashes/fileHashes.bin and /dev/null differ
diff --git a/Server/.gradle/5.2.1/fileHashes/fileHashes.lock b/Server/.gradle/5.2.1/fileHashes/fileHashes.lock
deleted file mode 100644
index 728085d..0000000
Binary files a/Server/.gradle/5.2.1/fileHashes/fileHashes.lock and /dev/null differ
diff --git a/Server/.gradle/5.2.1/javaCompile/classAnalysis.bin b/Server/.gradle/5.2.1/javaCompile/classAnalysis.bin
deleted file mode 100644
index 9a39887..0000000
Binary files a/Server/.gradle/5.2.1/javaCompile/classAnalysis.bin and /dev/null differ
diff --git a/Server/.gradle/5.2.1/javaCompile/javaCompile.lock b/Server/.gradle/5.2.1/javaCompile/javaCompile.lock
deleted file mode 100644
index 4f762a7..0000000
Binary files a/Server/.gradle/5.2.1/javaCompile/javaCompile.lock and /dev/null differ
diff --git a/Server/.gradle/5.2.1/javaCompile/taskHistory.bin b/Server/.gradle/5.2.1/javaCompile/taskHistory.bin
deleted file mode 100644
index 2118b1f..0000000
Binary files a/Server/.gradle/5.2.1/javaCompile/taskHistory.bin and /dev/null differ
diff --git a/Server/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/Server/.gradle/buildOutputCleanup/buildOutputCleanup.lock
deleted file mode 100644
index 3bfd094..0000000
Binary files a/Server/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ
diff --git a/Server/.gradle/buildOutputCleanup/cache.properties b/Server/.gradle/buildOutputCleanup/cache.properties
deleted file mode 100644
index 37d9125..0000000
--- a/Server/.gradle/buildOutputCleanup/cache.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Wed Feb 20 23:42:38 CET 2019
-gradle.version=5.2.1
diff --git a/Server/.gradle/buildOutputCleanup/outputFiles.bin b/Server/.gradle/buildOutputCleanup/outputFiles.bin
deleted file mode 100644
index 4cb0ec9..0000000
Binary files a/Server/.gradle/buildOutputCleanup/outputFiles.bin and /dev/null differ
diff --git a/Server/.gradle/vcs-1/gc.properties b/Server/.gradle/vcs-1/gc.properties
deleted file mode 100644
index e69de29..0000000
diff --git a/Server/.idea/gradle.xml b/Server/.idea/gradle.xml
deleted file mode 100644
index d1f1d89..0000000
--- a/Server/.idea/gradle.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Server/.idea/workspace.xml b/Server/.idea/workspace.xml
deleted file mode 100644
index f0c9e71..0000000
--- a/Server/.idea/workspace.xml
+++ /dev/null
@@ -1,271 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1550790895238
-
-
- 1550790895238
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 10
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Server/build/classes/java/main/hello/Application.class b/Server/build/classes/java/main/hello/Application.class
deleted file mode 100644
index 7e42770..0000000
Binary files a/Server/build/classes/java/main/hello/Application.class and /dev/null differ
diff --git a/Server/build/classes/java/main/hello/Greeting.class b/Server/build/classes/java/main/hello/Greeting.class
deleted file mode 100644
index 1aba7ae..0000000
Binary files a/Server/build/classes/java/main/hello/Greeting.class and /dev/null differ
diff --git a/Server/build/classes/java/main/hello/GreetingController.class b/Server/build/classes/java/main/hello/GreetingController.class
deleted file mode 100644
index 6938277..0000000
Binary files a/Server/build/classes/java/main/hello/GreetingController.class and /dev/null differ
diff --git a/Server/build/jacoco/test.exec b/Server/build/jacoco/test.exec
deleted file mode 100644
index 81e692e..0000000
Binary files a/Server/build/jacoco/test.exec and /dev/null differ
diff --git a/Server/build/reports/tests/test/classes/ApplicationTest.html b/Server/build/reports/tests/test/classes/ApplicationTest.html
deleted file mode 100644
index 483a0c7..0000000
--- a/Server/build/reports/tests/test/classes/ApplicationTest.html
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-Test results - Class ApplicationTest
-
-
-
-
-
-
-
Class ApplicationTest
-
-
-
-
-
-
-
-
-|
-
- |
-
-
- |
-
-
- |
-
-
- |
-
-
-
- |
-
-
- |
-
-
-
-
-
-
-
Tests
-
-
-
-| Test |
-Duration |
-Result |
-
-
-
-| justAnExample() |
-0.013s |
-passed |
-
-
-
-
-
Standard output
-
-This test method should be run
-
-
-
-
-
-
-
-
diff --git a/Server/build/reports/tests/test/css/base-style.css b/Server/build/reports/tests/test/css/base-style.css
deleted file mode 100644
index 4afa73e..0000000
--- a/Server/build/reports/tests/test/css/base-style.css
+++ /dev/null
@@ -1,179 +0,0 @@
-
-body {
- margin: 0;
- padding: 0;
- font-family: sans-serif;
- font-size: 12pt;
-}
-
-body, a, a:visited {
- color: #303030;
-}
-
-#content {
- padding-left: 50px;
- padding-right: 50px;
- padding-top: 30px;
- padding-bottom: 30px;
-}
-
-#content h1 {
- font-size: 160%;
- margin-bottom: 10px;
-}
-
-#footer {
- margin-top: 100px;
- font-size: 80%;
- white-space: nowrap;
-}
-
-#footer, #footer a {
- color: #a0a0a0;
-}
-
-#line-wrapping-toggle {
- vertical-align: middle;
-}
-
-#label-for-line-wrapping-toggle {
- vertical-align: middle;
-}
-
-ul {
- margin-left: 0;
-}
-
-h1, h2, h3 {
- white-space: nowrap;
-}
-
-h2 {
- font-size: 120%;
-}
-
-ul.tabLinks {
- padding-left: 0;
- padding-top: 10px;
- padding-bottom: 10px;
- overflow: auto;
- min-width: 800px;
- width: auto !important;
- width: 800px;
-}
-
-ul.tabLinks li {
- float: left;
- height: 100%;
- list-style: none;
- padding-left: 10px;
- padding-right: 10px;
- padding-top: 5px;
- padding-bottom: 5px;
- margin-bottom: 0;
- -moz-border-radius: 7px;
- border-radius: 7px;
- margin-right: 25px;
- border: solid 1px #d4d4d4;
- background-color: #f0f0f0;
-}
-
-ul.tabLinks li:hover {
- background-color: #fafafa;
-}
-
-ul.tabLinks li.selected {
- background-color: #c5f0f5;
- border-color: #c5f0f5;
-}
-
-ul.tabLinks a {
- font-size: 120%;
- display: block;
- outline: none;
- text-decoration: none;
- margin: 0;
- padding: 0;
-}
-
-ul.tabLinks li h2 {
- margin: 0;
- padding: 0;
-}
-
-div.tab {
-}
-
-div.selected {
- display: block;
-}
-
-div.deselected {
- display: none;
-}
-
-div.tab table {
- min-width: 350px;
- width: auto !important;
- width: 350px;
- border-collapse: collapse;
-}
-
-div.tab th, div.tab table {
- border-bottom: solid #d0d0d0 1px;
-}
-
-div.tab th {
- text-align: left;
- white-space: nowrap;
- padding-left: 6em;
-}
-
-div.tab th:first-child {
- padding-left: 0;
-}
-
-div.tab td {
- white-space: nowrap;
- padding-left: 6em;
- padding-top: 5px;
- padding-bottom: 5px;
-}
-
-div.tab td:first-child {
- padding-left: 0;
-}
-
-div.tab td.numeric, div.tab th.numeric {
- text-align: right;
-}
-
-span.code {
- display: inline-block;
- margin-top: 0em;
- margin-bottom: 1em;
-}
-
-span.code pre {
- font-size: 11pt;
- padding-top: 10px;
- padding-bottom: 10px;
- padding-left: 10px;
- padding-right: 10px;
- margin: 0;
- background-color: #f7f7f7;
- border: solid 1px #d0d0d0;
- min-width: 700px;
- width: auto !important;
- width: 700px;
-}
-
-span.wrapped pre {
- word-wrap: break-word;
- white-space: pre-wrap;
- word-break: break-all;
-}
-
-label.hidden {
- display: none;
-}
\ No newline at end of file
diff --git a/Server/build/reports/tests/test/css/style.css b/Server/build/reports/tests/test/css/style.css
deleted file mode 100644
index 3dc4913..0000000
--- a/Server/build/reports/tests/test/css/style.css
+++ /dev/null
@@ -1,84 +0,0 @@
-
-#summary {
- margin-top: 30px;
- margin-bottom: 40px;
-}
-
-#summary table {
- border-collapse: collapse;
-}
-
-#summary td {
- vertical-align: top;
-}
-
-.breadcrumbs, .breadcrumbs a {
- color: #606060;
-}
-
-.infoBox {
- width: 110px;
- padding-top: 15px;
- padding-bottom: 15px;
- text-align: center;
-}
-
-.infoBox p {
- margin: 0;
-}
-
-.counter, .percent {
- font-size: 120%;
- font-weight: bold;
- margin-bottom: 8px;
-}
-
-#duration {
- width: 125px;
-}
-
-#successRate, .summaryGroup {
- border: solid 2px #d0d0d0;
- -moz-border-radius: 10px;
- border-radius: 10px;
-}
-
-#successRate {
- width: 140px;
- margin-left: 35px;
-}
-
-#successRate .percent {
- font-size: 180%;
-}
-
-.success, .success a {
- color: #008000;
-}
-
-div.success, #successRate.success {
- background-color: #bbd9bb;
- border-color: #008000;
-}
-
-.failures, .failures a {
- color: #b60808;
-}
-
-.skipped, .skipped a {
- color: #c09853;
-}
-
-div.failures, #successRate.failures {
- background-color: #ecdada;
- border-color: #b60808;
-}
-
-ul.linkList {
- padding-left: 0;
-}
-
-ul.linkList li {
- list-style: none;
- margin-bottom: 5px;
-}
diff --git a/Server/build/reports/tests/test/index.html b/Server/build/reports/tests/test/index.html
deleted file mode 100644
index 8b41bbe..0000000
--- a/Server/build/reports/tests/test/index.html
+++ /dev/null
@@ -1,133 +0,0 @@
-
-
-
-
-
-Test results - Test Summary
-
-
-
-
-
-
-
Test Summary
-
-
-
-
-
-
-
-|
-
- |
-
-
- |
-
-
- |
-
-
- |
-
-
-
- |
-
-
- |
-
-
-
-
-
-
-
Packages
-
-
-
-| Package |
-Tests |
-Failures |
-Ignored |
-Duration |
-Success rate |
-
-
-
-
-|
-default-package
- |
-1 |
-0 |
-0 |
-0.013s |
-100% |
-
-
-
-
-
-
Classes
-
-
-
-| Class |
-Tests |
-Failures |
-Ignored |
-Duration |
-Success rate |
-
-
-
-
-|
-ApplicationTest
- |
-1 |
-0 |
-0 |
-0.013s |
-100% |
-
-
-
-
-
-
-
-
-
diff --git a/Server/build/reports/tests/test/js/report.js b/Server/build/reports/tests/test/js/report.js
deleted file mode 100644
index 83bab4a..0000000
--- a/Server/build/reports/tests/test/js/report.js
+++ /dev/null
@@ -1,194 +0,0 @@
-(function (window, document) {
- "use strict";
-
- var tabs = {};
-
- function changeElementClass(element, classValue) {
- if (element.getAttribute("className")) {
- element.setAttribute("className", classValue);
- } else {
- element.setAttribute("class", classValue);
- }
- }
-
- function getClassAttribute(element) {
- if (element.getAttribute("className")) {
- return element.getAttribute("className");
- } else {
- return element.getAttribute("class");
- }
- }
-
- function addClass(element, classValue) {
- changeElementClass(element, getClassAttribute(element) + " " + classValue);
- }
-
- function removeClass(element, classValue) {
- changeElementClass(element, getClassAttribute(element).replace(classValue, ""));
- }
-
- function initTabs() {
- var container = document.getElementById("tabs");
-
- tabs.tabs = findTabs(container);
- tabs.titles = findTitles(tabs.tabs);
- tabs.headers = findHeaders(container);
- tabs.select = select;
- tabs.deselectAll = deselectAll;
- tabs.select(0);
-
- return true;
- }
-
- function getCheckBox() {
- return document.getElementById("line-wrapping-toggle");
- }
-
- function getLabelForCheckBox() {
- return document.getElementById("label-for-line-wrapping-toggle");
- }
-
- function findCodeBlocks() {
- var spans = document.getElementById("tabs").getElementsByTagName("span");
- var codeBlocks = [];
- for (var i = 0; i < spans.length; ++i) {
- if (spans[i].className.indexOf("code") >= 0) {
- codeBlocks.push(spans[i]);
- }
- }
- return codeBlocks;
- }
-
- function forAllCodeBlocks(operation) {
- var codeBlocks = findCodeBlocks();
-
- for (var i = 0; i < codeBlocks.length; ++i) {
- operation(codeBlocks[i], "wrapped");
- }
- }
-
- function toggleLineWrapping() {
- var checkBox = getCheckBox();
-
- if (checkBox.checked) {
- forAllCodeBlocks(addClass);
- } else {
- forAllCodeBlocks(removeClass);
- }
- }
-
- function initControls() {
- if (findCodeBlocks().length > 0) {
- var checkBox = getCheckBox();
- var label = getLabelForCheckBox();
-
- checkBox.onclick = toggleLineWrapping;
- checkBox.checked = false;
-
- removeClass(label, "hidden");
- }
- }
-
- function switchTab() {
- var id = this.id.substr(1);
-
- for (var i = 0; i < tabs.tabs.length; i++) {
- if (tabs.tabs[i].id === id) {
- tabs.select(i);
- break;
- }
- }
-
- return false;
- }
-
- function select(i) {
- this.deselectAll();
-
- changeElementClass(this.tabs[i], "tab selected");
- changeElementClass(this.headers[i], "selected");
-
- while (this.headers[i].firstChild) {
- this.headers[i].removeChild(this.headers[i].firstChild);
- }
-
- var h2 = document.createElement("H2");
-
- h2.appendChild(document.createTextNode(this.titles[i]));
- this.headers[i].appendChild(h2);
- }
-
- function deselectAll() {
- for (var i = 0; i < this.tabs.length; i++) {
- changeElementClass(this.tabs[i], "tab deselected");
- changeElementClass(this.headers[i], "deselected");
-
- while (this.headers[i].firstChild) {
- this.headers[i].removeChild(this.headers[i].firstChild);
- }
-
- var a = document.createElement("A");
-
- a.setAttribute("id", "ltab" + i);
- a.setAttribute("href", "#tab" + i);
- a.onclick = switchTab;
- a.appendChild(document.createTextNode(this.titles[i]));
-
- this.headers[i].appendChild(a);
- }
- }
-
- function findTabs(container) {
- return findChildElements(container, "DIV", "tab");
- }
-
- function findHeaders(container) {
- var owner = findChildElements(container, "UL", "tabLinks");
- return findChildElements(owner[0], "LI", null);
- }
-
- function findTitles(tabs) {
- var titles = [];
-
- for (var i = 0; i < tabs.length; i++) {
- var tab = tabs[i];
- var header = findChildElements(tab, "H2", null)[0];
-
- header.parentNode.removeChild(header);
-
- if (header.innerText) {
- titles.push(header.innerText);
- } else {
- titles.push(header.textContent);
- }
- }
-
- return titles;
- }
-
- function findChildElements(container, name, targetClass) {
- var elements = [];
- var children = container.childNodes;
-
- for (var i = 0; i < children.length; i++) {
- var child = children.item(i);
-
- if (child.nodeType === 1 && child.nodeName === name) {
- if (targetClass && child.className.indexOf(targetClass) < 0) {
- continue;
- }
-
- elements.push(child);
- }
- }
-
- return elements;
- }
-
- // Entry point.
-
- window.onload = function() {
- initTabs();
- initControls();
- };
-} (window, window.document));
\ No newline at end of file
diff --git a/Server/build/reports/tests/test/packages/default-package.html b/Server/build/reports/tests/test/packages/default-package.html
deleted file mode 100644
index cef2217..0000000
--- a/Server/build/reports/tests/test/packages/default-package.html
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-Test results - Default package
-
-
-
-
-
-
-
Default package
-
-
-
-
-
-
-
-
-|
-
- |
-
-
- |
-
-
- |
-
-
- |
-
-
-
- |
-
-
- |
-
-
-
-
-
-
-
Classes
-
-
-
-| Class |
-Tests |
-Failures |
-Ignored |
-Duration |
-Success rate |
-
-
-
-|
-ApplicationTest
- |
-1 |
-0 |
-0 |
-0.013s |
-100% |
-
-
-
-
-
-
-
-
diff --git a/Server/build/test-results/test/TEST-ApplicationTest.xml b/Server/build/test-results/test/TEST-ApplicationTest.xml
deleted file mode 100644
index 13b1ca4..0000000
--- a/Server/build/test-results/test/TEST-ApplicationTest.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
diff --git a/Server/build/test-results/test/binary/output.bin b/Server/build/test-results/test/binary/output.bin
deleted file mode 100644
index 6fd9632..0000000
--- a/Server/build/test-results/test/binary/output.bin
+++ /dev/null
@@ -1 +0,0 @@
- This test method should be run
diff --git a/Server/build/test-results/test/binary/output.bin.idx b/Server/build/test-results/test/binary/output.bin.idx
deleted file mode 100644
index d29f03b..0000000
Binary files a/Server/build/test-results/test/binary/output.bin.idx and /dev/null differ
diff --git a/Server/build/test-results/test/binary/results.bin b/Server/build/test-results/test/binary/results.bin
deleted file mode 100644
index a1e070c..0000000
Binary files a/Server/build/test-results/test/binary/results.bin and /dev/null differ
diff --git a/pom.xml b/pom.xml
index bda3567..547dea2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,11 @@
RELEASE
test
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+ 2.0.5.RELEASE
+
diff --git a/src/Client/.gitignore b/src/Client/.gitignore
new file mode 100644
index 0000000..b7e4f85
--- /dev/null
+++ b/src/Client/.gitignore
@@ -0,0 +1,198 @@
+
+# Created by https://www.gitignore.io/api/java,gradle,eclipse,intellij
+# Edit at https://www.gitignore.io/?templates=java,gradle,eclipse,intellij
+
+### Eclipse ###
+
+.metadata
+bin/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# PyDev specific (Python IDE for Eclipse)
+*.pydevproject
+
+# CDT-specific (C/C++ Development Tooling)
+.cproject
+
+# CDT- autotools
+.autotools
+
+# Java annotation processor (APT)
+.factorypath
+
+# PDT-specific (PHP Development Tools)
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# Tern plugin
+.tern-project
+
+# TeXlipse plugin
+.texlipse
+
+# STS (Spring Tool Suite)
+.springBeans
+
+# Code Recommenders
+.recommenders/
+
+# Annotation Processing
+.apt_generated/
+
+# Scala IDE specific (Scala & Java development for Eclipse)
+.cache-main
+.scala_dependencies
+.worksheet
+
+### Eclipse Patch ###
+# Eclipse Core
+.project
+
+# JDT-specific (Eclipse Java Development Tools)
+.classpath
+
+# Annotation Processing
+.apt_generated
+
+.sts4-cache/
+
+### Intellij ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### Intellij Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+### Java ###
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+### Gradle ###
+.gradle
+build/
+
+# Ignore Gradle GUI config
+gradle-app.setting
+
+# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
+!gradle-wrapper.jar
+
+# Cache of project
+.gradletasknamecache
+
+# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
+# gradle/wrapper/gradle-wrapper.properties
+
+### Gradle Patch ###
+**/build/
+
+# End of https://www.gitignore.io/api/java,gradle,eclipse,intellij
\ No newline at end of file
diff --git a/Server/.idea/encodings.xml b/src/Client/.idea/encodings.xml
similarity index 100%
rename from Server/.idea/encodings.xml
rename to src/Client/.idea/encodings.xml
diff --git a/Server/.idea/misc.xml b/src/Client/.idea/misc.xml
similarity index 100%
rename from Server/.idea/misc.xml
rename to src/Client/.idea/misc.xml
diff --git a/Client/build.gradle b/src/Client/build.gradle
similarity index 100%
rename from Client/build.gradle
rename to src/Client/build.gradle
diff --git a/Client/src/main/java/hello/Application.java b/src/Client/src/main/java/hello/Application.java
similarity index 100%
rename from Client/src/main/java/hello/Application.java
rename to src/Client/src/main/java/hello/Application.java
diff --git a/Client/src/main/java/hello/Message.java b/src/Client/src/main/java/hello/Message.java
similarity index 100%
rename from Client/src/main/java/hello/Message.java
rename to src/Client/src/main/java/hello/Message.java
diff --git a/Client/src/test/java/ApplicationTest.java b/src/Client/src/test/java/ApplicationTest.java
similarity index 100%
rename from Client/src/test/java/ApplicationTest.java
rename to src/Client/src/test/java/ApplicationTest.java
diff --git a/Client/src/test/java/MessageTest.java b/src/Client/src/test/java/MessageTest.java
similarity index 100%
rename from Client/src/test/java/MessageTest.java
rename to src/Client/src/test/java/MessageTest.java
diff --git a/src/Server/.gitignore b/src/Server/.gitignore
new file mode 100644
index 0000000..b7e4f85
--- /dev/null
+++ b/src/Server/.gitignore
@@ -0,0 +1,198 @@
+
+# Created by https://www.gitignore.io/api/java,gradle,eclipse,intellij
+# Edit at https://www.gitignore.io/?templates=java,gradle,eclipse,intellij
+
+### Eclipse ###
+
+.metadata
+bin/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# PyDev specific (Python IDE for Eclipse)
+*.pydevproject
+
+# CDT-specific (C/C++ Development Tooling)
+.cproject
+
+# CDT- autotools
+.autotools
+
+# Java annotation processor (APT)
+.factorypath
+
+# PDT-specific (PHP Development Tools)
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# Tern plugin
+.tern-project
+
+# TeXlipse plugin
+.texlipse
+
+# STS (Spring Tool Suite)
+.springBeans
+
+# Code Recommenders
+.recommenders/
+
+# Annotation Processing
+.apt_generated/
+
+# Scala IDE specific (Scala & Java development for Eclipse)
+.cache-main
+.scala_dependencies
+.worksheet
+
+### Eclipse Patch ###
+# Eclipse Core
+.project
+
+# JDT-specific (Eclipse Java Development Tools)
+.classpath
+
+# Annotation Processing
+.apt_generated
+
+.sts4-cache/
+
+### Intellij ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### Intellij Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+### Java ###
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+### Gradle ###
+.gradle
+build/
+
+# Ignore Gradle GUI config
+gradle-app.setting
+
+# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
+!gradle-wrapper.jar
+
+# Cache of project
+.gradletasknamecache
+
+# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
+# gradle/wrapper/gradle-wrapper.properties
+
+### Gradle Patch ###
+**/build/
+
+# End of https://www.gitignore.io/api/java,gradle,eclipse,intellij
\ No newline at end of file
diff --git a/Server/build.gradle b/src/Server/build.gradle
similarity index 100%
rename from Server/build.gradle
rename to src/Server/build.gradle
diff --git a/Server/src/main/java/hello/Application.java b/src/Server/src/main/java/hello/Application.java
similarity index 100%
rename from Server/src/main/java/hello/Application.java
rename to src/Server/src/main/java/hello/Application.java
diff --git a/Server/src/main/java/hello/Greeting.java b/src/Server/src/main/java/hello/Greeting.java
similarity index 100%
rename from Server/src/main/java/hello/Greeting.java
rename to src/Server/src/main/java/hello/Greeting.java
diff --git a/Server/src/main/java/hello/GreetingController.java b/src/Server/src/main/java/hello/GreetingController.java
similarity index 100%
rename from Server/src/main/java/hello/GreetingController.java
rename to src/Server/src/main/java/hello/GreetingController.java
diff --git a/Server/src/test/java/ApplicationTest.java b/src/Server/src/test/java/ApplicationTest.java
similarity index 100%
rename from Server/src/test/java/ApplicationTest.java
rename to src/Server/src/test/java/ApplicationTest.java
diff --git a/Server/src/test/java/GreetingControllerTest.java b/src/Server/src/test/java/GreetingControllerTest.java
similarity index 100%
rename from Server/src/test/java/GreetingControllerTest.java
rename to src/Server/src/test/java/GreetingControllerTest.java
diff --git a/Server/src/test/java/GreetingTest.java b/src/Server/src/test/java/GreetingTest.java
similarity index 100%
rename from Server/src/test/java/GreetingTest.java
rename to src/Server/src/test/java/GreetingTest.java