diff --git a/Lab_3/Twidder/__pycache__/database_helper.cpython-38.pyc b/Lab_3/Twidder/__pycache__/database_helper.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..7e4a18eb4153651973e42af292cfa4aab521d882
Binary files /dev/null and b/Lab_3/Twidder/__pycache__/database_helper.cpython-38.pyc differ
diff --git a/Lab_3/Twidder/database.db b/Lab_3/Twidder/database.db
index 98febc27663f0c5d5627b399039324589b6a13ed..f7004e4eedc2f4728e612ffa78607a16335fe279 100644
Binary files a/Lab_3/Twidder/database.db and b/Lab_3/Twidder/database.db differ
diff --git a/Lab_3/Twidder/server.py b/Lab_3/Twidder/server.py
index d5936c7ef9bd82ffc548157356710c9a0b50b2e6..26705d7ba7581a899d5226442e9ce9afa0816634 100644
--- a/Lab_3/Twidder/server.py
+++ b/Lab_3/Twidder/server.py
@@ -18,6 +18,10 @@ session = {'token':'email'}
 def root():
     return app.send_static_file('client.html')
 
+@app.route('/myServer')
+def myServer():
+    return app.send_static_file('client.html')
+
 
 def token_has_error(token):
     """All token standard error checks"""
@@ -44,6 +48,7 @@ def input_has_error(input):
 @app.route("/myServer/sign_in", methods=['POST'])
 def sign_in():
     """Sign in user"""
+    # return jsonify({}), 204
     email = request.get_json()['email']
     password = request.get_json()['password']
 
@@ -77,8 +82,12 @@ def sign_in():
 
 @app.route("/myServer/sign_up", methods=['POST'])
 def sign_up():
+    print('hello')
     """Sign up a user"""
     json_obj = request.get_json()
+
+    print(json_obj)
+
     email = json_obj['email']
 
     tmp = input_has_error(email)
diff --git a/Lab_3/Twidder/static/client.html b/Lab_3/Twidder/static/client.html
index 4c4df13e7a35687f7e110a0e9eb9447795cb121c..8ebd769443e0a5c90d0f268f0c563c4c13051edb 100644
--- a/Lab_3/Twidder/static/client.html
+++ b/Lab_3/Twidder/static/client.html
@@ -6,7 +6,7 @@
         <link href="static/client.css" type="text/css" rel="stylesheet">
         <script src="static/client.js"></script>
         <script src="static/serverstub.js"></script>
-        <script src="server.py"></script>
+        <!-- <script src="server.py"></script> -->
 
         <script type="text/view" id="welcomeview">    
             <div id="repeat_pass"></div>
diff --git a/Lab_3/Twidder/static/client.js b/Lab_3/Twidder/static/client.js
index 99540d2f8e824062f0fe2c5c9e7a675ad1921f5c..6658aaec9f5964004fef3e81bae4b3ad09469b00 100644
--- a/Lab_3/Twidder/static/client.js
+++ b/Lab_3/Twidder/static/client.js
@@ -3,6 +3,13 @@ var minPassLength = 2;
 var windowDiv;
 var welcomeDiv;
 var profileDiv;
+var url = 'http://127.0.0.1:5000/myServer';
+
+
+
+
+
+
 
 // - - - - - Init functions - - - - - //
 
@@ -65,6 +72,7 @@ function setUserDetails(who) {
 // - - - - - Sign Up/In/Out - - - - - //
 
 function sign_up() {
+
     let form = document.getElementById("signup_form");
     let errorMess = document.getElementById("signUpError");
     let user = {
@@ -85,11 +93,38 @@ function sign_up() {
         errorMess.innerHTML = "Passwords does not match";
     else {
 
-        // Todo
-        // Submission to "server"
-        let signUpObj = serverstub.signUp(user);
-        // Set message to user
-        errorMess.innerHTML = signUpObj["message"];
+        // // Todo
+        // // Submission to "server"
+        // let signUpObj = serverstub.signUp(user);
+        // // Set message to user
+        // errorMess.innerHTML = signUpObj["message"];
+
+
+        //----------------//----------------//----------------//----------------
+        let xhttp = new XMLHttpRequest();
+        // xhttp.onreadystatechange = function () {
+        //     if (this.readyState == 4 && this.status == 200) {
+        //         // Typical action to be performed when the document is ready:
+        //         errorMess.innerHTML = xhttp.responseText;
+        //     }
+        // };
+        //xhttp.addEventListener("load", reqListener);
+        xhttp.open("POST", "http://127.0.0.1:5000/myServer/sign_up", true);
+        xhttp.setRequestHeader('Authorization', '1f191d40-c128-477d-9f9f-196c81810f02');
+        //xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
+        xhttp.send(JSON.stringify({
+            "email": "k@k",
+            "password": "kass",
+            "firstname": "kk",
+            "familyname": "hello",
+            "gender": "male",
+            "city": "linköping",
+            "country": "swe"
+        }));
+        // obj = JSON.parse(xhttp.responseText);
+        // alert(obj.alert)
+//----------------//----------------//----------------//----------------
+
     }
     return false;
 }
@@ -108,6 +143,23 @@ function sign_in() {
         //Todo
         // Sending sign_in request to "server"
         let signInObj = serverstub.signIn(email, password);
+        var signInRequest = new XMLHttpRequest();
+        signInRequest.onreadystatechange = function() {
+        
+            if (this.readyState == 4) {
+                if (this.status == 204) {
+                    console.log('success')
+                }
+                else if (this.status == 404) {
+                    console.log('nor found')
+                }
+                else {
+                    console.log('unknown error')
+                } 
+            }
+        };
+        signInRequest.open("POST", "http://127.0.0.1:5000/myServer/sign_in", true);
+        signInRequest.send();
         
         // Set message to user
         errorMess.innerHTML = signInObj["message"]; 
@@ -216,6 +268,7 @@ function updateWall(who){
     serverstub.postMessage(token, messageToWall, email);
 
     document.getElementById(who + 'Textarea').value = "";
+    
     return false;
 }