diff --git a/ChatService/nbproject/project.properties b/ChatService/nbproject/project.properties
index 2f11d669f936992b33a10021baac1bfa9a2f2219..8935b2be2df1d8122b0949db06c744dcfd9cd822 100644
--- a/ChatService/nbproject/project.properties
+++ b/ChatService/nbproject/project.properties
@@ -34,7 +34,7 @@ j2ee.compile.on.save=true
 j2ee.copy.static.files.on.save=true
 j2ee.deploy.on.save=true
 j2ee.platform=1.7-web
-j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
+j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
 j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
 j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
 j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar
diff --git a/ChatService/src/java/org/ChatService/SendMessage.java b/ChatService/src/java/org/ChatService/SendMessage.java
index e146d1537b9d593d1aa8cae392fe1ba78f8d74e2..1a6fa1444160366b47245b598a2bd70f0a032a96 100644
--- a/ChatService/src/java/org/ChatService/SendMessage.java
+++ b/ChatService/src/java/org/ChatService/SendMessage.java
@@ -56,7 +56,7 @@ public class SendMessage extends HttpServlet {
                 if(rs.next()){
                     JSONObject json = new JSONObject();
                     JSONObject json1 = new JSONObject();
-                    String chattoken =rs.getString("chattoken");
+                    String chattoken = rs.getString("chattoken");
                     /* Format json
                     {data : {
                         username : xx
diff --git a/ChatService/src/java/org/ChatService/TokenSaver.java b/ChatService/src/java/org/ChatService/TokenSaver.java
index d2180c784488b1f5477531b9dfbb2014f39e79e3..a5e0eca1b5c8eb4964bebfc973d98bb80f9d01d4 100644
--- a/ChatService/src/java/org/ChatService/TokenSaver.java
+++ b/ChatService/src/java/org/ChatService/TokenSaver.java
@@ -49,9 +49,9 @@ public class TokenSaver extends HttpServlet {
             if (conn != null){
                 Statement stmt = conn.createStatement();
                 String sql;
-                String username = request.getParameter("username");
+                String user_id = request.getParameter("user_id");
                 String chattoken = request.getParameter("chattoken");
-                sql = "insert into chattoken values (\""+ chattoken+ "\",\""+username+"\")";
+                sql = "insert into chattoken values (\""+ chattoken+ "\",\""+user_id+"\")";
                 stmt.executeUpdate(sql);
             }
             else{
diff --git a/IdentService/nbproject/private/private.properties b/IdentService/nbproject/private/private.properties
index 17b05e1fd355984e3470323a00669e8abef06ddb..0a28249b62f62baa723f11b21959dc63d18c0b1c 100644
--- a/IdentService/nbproject/private/private.properties
+++ b/IdentService/nbproject/private/private.properties
@@ -1,7 +1,7 @@
-deploy.ant.properties.file=/home/khrs/.netbeans/8.2/config/GlassFishEE6/Properties/gfv3-2049786751.properties
+deploy.ant.properties.file=C:\\Users\\Frys\\AppData\\Roaming\\NetBeans\\8.2\\config\\GlassFishEE6\\Properties\\gfv31137312071.properties
 j2ee.platform.is.jsr109=true
-j2ee.server.domain=/home/khrs/glassfish-4.1.1/glassfish/domains/domain1
-j2ee.server.home=/home/khrs/glassfish-4.1.1/glassfish
-j2ee.server.instance=[/home/khrs/glassfish-4.1.1/glassfish:/home/khrs/glassfish-4.1.1/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848
-j2ee.server.middleware=/home/khrs/glassfish-4.1.1
-user.properties.file=/home/khrs/.netbeans/8.2/build.properties
+j2ee.server.domain=C:/Users/Frys/GlassFish_Server/glassfish/domains/domain-client
+j2ee.server.home=C:/Users/Frys/GlassFish_Server/glassfish
+j2ee.server.instance=[C:\\Users\\Frys\\GlassFish_Server\\glassfish;C:\\Users\\Frys\\GlassFish_Server\\glassfish\\domains\\domain-client]deployer:gfv3ee6wc:localhost:4848
+j2ee.server.middleware=C:/Users/Frys/GlassFish_Server
+user.properties.file=C:\\Users\\Frys\\AppData\\Roaming\\NetBeans\\8.2\\build.properties
diff --git a/IdentService/nbproject/project.properties b/IdentService/nbproject/project.properties
index f084e36d96884511d0b0586d1bb4541af6146a50..30b036df8577cda9129c33869572988b76ce6e75 100644
--- a/IdentService/nbproject/project.properties
+++ b/IdentService/nbproject/project.properties
@@ -34,7 +34,7 @@ j2ee.compile.on.save=true
 j2ee.copy.static.files.on.save=true
 j2ee.deploy.on.save=true
 j2ee.platform=1.7-web
-j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
+j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
 j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
 j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
 j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar
diff --git a/KAA-JSP/build/web/css/style.css b/KAA-JSP/build/web/css/style.css
index b9ac050343e238a609c528ef23c3a5a4f26856c4..60760a094129686c425a4591b7d7fe92a43401a8 100644
--- a/KAA-JSP/build/web/css/style.css
+++ b/KAA-JSP/build/web/css/style.css
@@ -331,4 +331,17 @@ a {
 
 .link{
 	color: #1a53ff;
+}
+
+ul {
+    margin: 0px 0px 0px 20px;
+    padding: 0px 0px 0px 10px;
+}
+ul li {
+    color: green;
+    list-style-type: disc;
+}
+
+ul li span{
+    color: black;
 }
\ No newline at end of file
diff --git a/KAA-JSP/build/web/login.jsp b/KAA-JSP/build/web/login.jsp
index 2db4b934eb10a7a5be792e56c3153c93ff3963e1..c79dbf0a80ca679554ebc4e5c23cd652a6dce5b5 100644
--- a/KAA-JSP/build/web/login.jsp
+++ b/KAA-JSP/build/web/login.jsp
@@ -9,36 +9,39 @@
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html>
-     <%
+    <%
         /* Check the request */
-        if (request.getParameter("submit") != null){
+        if (request.getParameter("submit") != null) {
             URL obj = null;
-            try{
+            try {
                 /* Consuming API using GET method */
                 String user = request.getParameter("username");
                 String pass = request.getParameter("password");
-                String urlParameter = "username="+user+"&password="+pass;
-                String userAgent = request.getHeader("user-agent");
+                String urlParameter = "username=" + user + "&password=" + pass;
+                //String userAgent = request.getHeader("user-agent");
                 String urlRequest = "http://localhost:8080/IdentService/login?";
-                RestAPI_consumer consumer = new RestAPI_consumer(urlRequest,urlParameter);
+                RestAPI_consumer consumer = new RestAPI_consumer(urlRequest, urlParameter);
                 consumer.execute();
                 JSONObject responseJSON = consumer.getOutput();
+
+                // REST API for Chat Service
+                String chattoken = (String) request.getParameter("chattoken");
+                Long uid = (Long) responseJSON.get("user_id");
+                String urlParameter2 = "chattoken=" + chattoken + "&user_id=" + uid;
                 
                 /* Checking the response */
-                String status = (String)responseJSON.get("status");
-                String generatedToken = (String)responseJSON.get("token");
-                if (status.equals("OK")){
-                    Cookie cookie = new Cookie("token",generatedToken);
+                String status = (String) responseJSON.get("status");
+                String generatedToken = (String) responseJSON.get("token");
+                if (status.equals("OK")) {
+                    Cookie cookie = new Cookie("token", generatedToken);
                     response.addCookie(cookie);
                     response.sendRedirect("http://localhost:8080/KAA-JSP/catalog."
-                            + "jsp?token="+generatedToken);
-                }
-                else{
+                            + "jsp?token=" + generatedToken);
+                } else {
                     response.sendRedirect("http://localhost:8080/KAA-JSP/login."
                             + "jsp?message=error");
                 }
-            }
-            catch(Exception e){
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         }
@@ -46,31 +49,31 @@
     <link href="css/style.css" rel="stylesheet" type="text/css"/>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-	<title>Sale Project - Login</title>
-	<link href="css/style.css" rel="stylesheet" type="text/css">        
+        <title>Sale Project - Login</title>
+        <link href="css/style.css" rel="stylesheet" type="text/css">        
     </head>
     <body>
-	<div class="content">
+        <div class="content">
             <div class="logo">
-                    <span id="red">Sale</span><span id="blue">Project</span>
+                <span id="red">Sale</span><span id="blue">Project</span>
             </div>
             <div class="title">
                 Please login
             </div>
             <hr>
             <div>
-            <form method= "GET">
-                <div class="input_field">
-                    Email or username<br><input type="text" name="username"><br>
-                </div>
-                <div class="input_field">
-                    Password<br><input type="password" name="password"><br>
-                </div>
-                <input type="hidden" name="chattoken" id="chattoken" value="getChatToken()">
-                <div class="submit_button_add">
-                    <input type="submit" name ="submit" value="LOGIN">
-                </div>
-            </form>
+                <form method= "GET">
+                    <div class="input_field">
+                        Email or username<br><input type="text" name="username"><br>
+                    </div>
+                    <div class="input_field">
+                        Password<br><input type="password" name="password"><br>
+                    </div>
+                    <input type="hidden" name="chattoken" id="chattoken">
+                    <div class="submit_button_add">
+                        <input type="submit" name ="submit" value="LOGIN">
+                    </div>
+                </form>
             </div>
             <div>
                 <br/>
@@ -80,61 +83,48 @@
                 <br />
                 <%
                     /* Printing the message */
-                    if (request.getParameter("message") != null){
+                    if (request.getParameter("message") != null) {
                         String message = request.getParameter("message");
                         if (message.equals("error")) {
                             out.println("Login Failed");
-                        }
-                        else if (message.equals("logout")){
+                        } else if (message.equals("logout")) {
                             out.println("Logged out!");
-                        }
-                        else if (message.equals("expired")){
+                        } else if (message.equals("expired")) {
                             out.println("Your token has expired!");
-                        }
-                        else{
+                        } else {
                             out.println(request.getParameter("message").toString());
                         }
                     }
                 %>
             </div>
-	</div>
+        </div>
         <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
         <script>
-          // Initialize Firebase
-          // Initialize Firebase
-        /*var config = {
-          apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU",
-          authDomain: "tugas-besar-wbd.firebaseapp.com",
-          databaseURL: "https://tugas-besar-wbd.firebaseio.com",
-          storageBucket: "tugas-besar-wbd.appspot.com",
-          messagingSenderId: "1049009619420"
-        };
-          firebase.initializeApp(config);
-          
-          const messaging = firebase.messaging();
-          messaging.requestPermission()
-            .then(function(){
-               console.log('Have Permission');
-               return messaging.getToken();
-                })
-            .then(function(token){
-                console.log(token);
-                })
-            .catch(function(err){
-                console.log('Errorr');
-            })
-            */
+            // Initialize Firebase
+            // Initialize Firebase
+            /*var config = {
+             apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU",
+             authDomain: "tugas-besar-wbd.firebaseapp.com",
+             databaseURL: "https://tugas-besar-wbd.firebaseio.com",
+             storageBucket: "tugas-besar-wbd.appspot.com",
+             messagingSenderId: "1049009619420"
+             };
+             firebase.initializeApp(config);
+             
+             const messaging = firebase.messaging();
+             messaging.requestPermission()
+             .then(function(){
+             console.log('Have Permission');
+             return messaging.getToken();
+             })
+             .then(function(token){
+             console.log(token);
+             })
+             .catch(function(err){
+             console.log('Errorr');
+             })
+             */
         </script>
-        <%
-            JSONObject json2 = new JSONObject();
-            JSONObject json1 = new JSONObject();
-            //String chattoken =rs.getString("chattoken");
-            json2.put("to", "XXX");
-            json2.put("username","Ali");
-            json1.put("message","Masbro");
-            json2.put("data",json1);
-            System.out.println(json2.toString());
-        %>
         <!-- Firebase -->
         <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
         <script>
@@ -146,33 +136,26 @@
                 messagingSenderId: "1049009619420"
             };
             firebase.initializeApp(config);
-
+            
             messaging = firebase.messaging();
 
             messaging.requestPermission()
-              .then(function() {
-                console.log('Notification permission granted.');
-                return messaging.getToken();
-                // TODO(developer): Retrieve an Instance ID token for use with FCM.
-                // ...
-                
-              })
-              .then(function(token){
-                  console.log(token);
-              })
-              .catch(function(err) {
-                console.log('Unable to get permission to notify.', err);
-              });
+                    .then(function () {
+                        console.log('Notification permission granted.');
+                        return messaging.getToken();
+                        // TODO(developer): Retrieve an Instance ID token for use with FCM.
+                        // ...
+
+                    })
+                    .then(function (token) {
+                        document.getElementById("chattoken").value = token;
+                        console.log(token);
+                    })
+                    .catch(function (err) {
+                        console.log('Unable to get permission to notify.', err);
+                    });
+
             
-              var chattoken= messaging.getToken();
-              
-                console.log(chattoken);
-              
-              var getChatToken=function(){
-                  return chattoken;
-              };
-              
-              document.getElementById("chattoken").value = chattoken;
         </script>
     </body>
 </html>
diff --git a/KAA-JSP/nbproject/private/private.properties b/KAA-JSP/nbproject/private/private.properties
index 17b05e1fd355984e3470323a00669e8abef06ddb..0a28249b62f62baa723f11b21959dc63d18c0b1c 100644
--- a/KAA-JSP/nbproject/private/private.properties
+++ b/KAA-JSP/nbproject/private/private.properties
@@ -1,7 +1,7 @@
-deploy.ant.properties.file=/home/khrs/.netbeans/8.2/config/GlassFishEE6/Properties/gfv3-2049786751.properties
+deploy.ant.properties.file=C:\\Users\\Frys\\AppData\\Roaming\\NetBeans\\8.2\\config\\GlassFishEE6\\Properties\\gfv31137312071.properties
 j2ee.platform.is.jsr109=true
-j2ee.server.domain=/home/khrs/glassfish-4.1.1/glassfish/domains/domain1
-j2ee.server.home=/home/khrs/glassfish-4.1.1/glassfish
-j2ee.server.instance=[/home/khrs/glassfish-4.1.1/glassfish:/home/khrs/glassfish-4.1.1/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848
-j2ee.server.middleware=/home/khrs/glassfish-4.1.1
-user.properties.file=/home/khrs/.netbeans/8.2/build.properties
+j2ee.server.domain=C:/Users/Frys/GlassFish_Server/glassfish/domains/domain-client
+j2ee.server.home=C:/Users/Frys/GlassFish_Server/glassfish
+j2ee.server.instance=[C:\\Users\\Frys\\GlassFish_Server\\glassfish;C:\\Users\\Frys\\GlassFish_Server\\glassfish\\domains\\domain-client]deployer:gfv3ee6wc:localhost:4848
+j2ee.server.middleware=C:/Users/Frys/GlassFish_Server
+user.properties.file=C:\\Users\\Frys\\AppData\\Roaming\\NetBeans\\8.2\\build.properties
diff --git a/KAA-JSP/nbproject/project.properties b/KAA-JSP/nbproject/project.properties
index c2d6fb21fb1de80301fbd6a3afce6cbe7cb827d2..6900029da30e5ebd68e7681629beea9eddd5d0f1 100644
--- a/KAA-JSP/nbproject/project.properties
+++ b/KAA-JSP/nbproject/project.properties
@@ -34,7 +34,7 @@ j2ee.compile.on.save=true
 j2ee.copy.static.files.on.save=true
 j2ee.deploy.on.save=true
 j2ee.platform=1.7-web
-j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
+j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
 j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
 j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
 j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar
diff --git a/KAA-JSP/web/css/style.css b/KAA-JSP/web/css/style.css
index b9ac050343e238a609c528ef23c3a5a4f26856c4..60760a094129686c425a4591b7d7fe92a43401a8 100644
--- a/KAA-JSP/web/css/style.css
+++ b/KAA-JSP/web/css/style.css
@@ -331,4 +331,17 @@ a {
 
 .link{
 	color: #1a53ff;
+}
+
+ul {
+    margin: 0px 0px 0px 20px;
+    padding: 0px 0px 0px 10px;
+}
+ul li {
+    color: green;
+    list-style-type: disc;
+}
+
+ul li span{
+    color: black;
 }
\ No newline at end of file
diff --git a/KAA-JSP/web/login.jsp b/KAA-JSP/web/login.jsp
index 2db4b934eb10a7a5be792e56c3153c93ff3963e1..c79dbf0a80ca679554ebc4e5c23cd652a6dce5b5 100644
--- a/KAA-JSP/web/login.jsp
+++ b/KAA-JSP/web/login.jsp
@@ -9,36 +9,39 @@
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html>
-     <%
+    <%
         /* Check the request */
-        if (request.getParameter("submit") != null){
+        if (request.getParameter("submit") != null) {
             URL obj = null;
-            try{
+            try {
                 /* Consuming API using GET method */
                 String user = request.getParameter("username");
                 String pass = request.getParameter("password");
-                String urlParameter = "username="+user+"&password="+pass;
-                String userAgent = request.getHeader("user-agent");
+                String urlParameter = "username=" + user + "&password=" + pass;
+                //String userAgent = request.getHeader("user-agent");
                 String urlRequest = "http://localhost:8080/IdentService/login?";
-                RestAPI_consumer consumer = new RestAPI_consumer(urlRequest,urlParameter);
+                RestAPI_consumer consumer = new RestAPI_consumer(urlRequest, urlParameter);
                 consumer.execute();
                 JSONObject responseJSON = consumer.getOutput();
+
+                // REST API for Chat Service
+                String chattoken = (String) request.getParameter("chattoken");
+                Long uid = (Long) responseJSON.get("user_id");
+                String urlParameter2 = "chattoken=" + chattoken + "&user_id=" + uid;
                 
                 /* Checking the response */
-                String status = (String)responseJSON.get("status");
-                String generatedToken = (String)responseJSON.get("token");
-                if (status.equals("OK")){
-                    Cookie cookie = new Cookie("token",generatedToken);
+                String status = (String) responseJSON.get("status");
+                String generatedToken = (String) responseJSON.get("token");
+                if (status.equals("OK")) {
+                    Cookie cookie = new Cookie("token", generatedToken);
                     response.addCookie(cookie);
                     response.sendRedirect("http://localhost:8080/KAA-JSP/catalog."
-                            + "jsp?token="+generatedToken);
-                }
-                else{
+                            + "jsp?token=" + generatedToken);
+                } else {
                     response.sendRedirect("http://localhost:8080/KAA-JSP/login."
                             + "jsp?message=error");
                 }
-            }
-            catch(Exception e){
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         }
@@ -46,31 +49,31 @@
     <link href="css/style.css" rel="stylesheet" type="text/css"/>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-	<title>Sale Project - Login</title>
-	<link href="css/style.css" rel="stylesheet" type="text/css">        
+        <title>Sale Project - Login</title>
+        <link href="css/style.css" rel="stylesheet" type="text/css">        
     </head>
     <body>
-	<div class="content">
+        <div class="content">
             <div class="logo">
-                    <span id="red">Sale</span><span id="blue">Project</span>
+                <span id="red">Sale</span><span id="blue">Project</span>
             </div>
             <div class="title">
                 Please login
             </div>
             <hr>
             <div>
-            <form method= "GET">
-                <div class="input_field">
-                    Email or username<br><input type="text" name="username"><br>
-                </div>
-                <div class="input_field">
-                    Password<br><input type="password" name="password"><br>
-                </div>
-                <input type="hidden" name="chattoken" id="chattoken" value="getChatToken()">
-                <div class="submit_button_add">
-                    <input type="submit" name ="submit" value="LOGIN">
-                </div>
-            </form>
+                <form method= "GET">
+                    <div class="input_field">
+                        Email or username<br><input type="text" name="username"><br>
+                    </div>
+                    <div class="input_field">
+                        Password<br><input type="password" name="password"><br>
+                    </div>
+                    <input type="hidden" name="chattoken" id="chattoken">
+                    <div class="submit_button_add">
+                        <input type="submit" name ="submit" value="LOGIN">
+                    </div>
+                </form>
             </div>
             <div>
                 <br/>
@@ -80,61 +83,48 @@
                 <br />
                 <%
                     /* Printing the message */
-                    if (request.getParameter("message") != null){
+                    if (request.getParameter("message") != null) {
                         String message = request.getParameter("message");
                         if (message.equals("error")) {
                             out.println("Login Failed");
-                        }
-                        else if (message.equals("logout")){
+                        } else if (message.equals("logout")) {
                             out.println("Logged out!");
-                        }
-                        else if (message.equals("expired")){
+                        } else if (message.equals("expired")) {
                             out.println("Your token has expired!");
-                        }
-                        else{
+                        } else {
                             out.println(request.getParameter("message").toString());
                         }
                     }
                 %>
             </div>
-	</div>
+        </div>
         <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
         <script>
-          // Initialize Firebase
-          // Initialize Firebase
-        /*var config = {
-          apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU",
-          authDomain: "tugas-besar-wbd.firebaseapp.com",
-          databaseURL: "https://tugas-besar-wbd.firebaseio.com",
-          storageBucket: "tugas-besar-wbd.appspot.com",
-          messagingSenderId: "1049009619420"
-        };
-          firebase.initializeApp(config);
-          
-          const messaging = firebase.messaging();
-          messaging.requestPermission()
-            .then(function(){
-               console.log('Have Permission');
-               return messaging.getToken();
-                })
-            .then(function(token){
-                console.log(token);
-                })
-            .catch(function(err){
-                console.log('Errorr');
-            })
-            */
+            // Initialize Firebase
+            // Initialize Firebase
+            /*var config = {
+             apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU",
+             authDomain: "tugas-besar-wbd.firebaseapp.com",
+             databaseURL: "https://tugas-besar-wbd.firebaseio.com",
+             storageBucket: "tugas-besar-wbd.appspot.com",
+             messagingSenderId: "1049009619420"
+             };
+             firebase.initializeApp(config);
+             
+             const messaging = firebase.messaging();
+             messaging.requestPermission()
+             .then(function(){
+             console.log('Have Permission');
+             return messaging.getToken();
+             })
+             .then(function(token){
+             console.log(token);
+             })
+             .catch(function(err){
+             console.log('Errorr');
+             })
+             */
         </script>
-        <%
-            JSONObject json2 = new JSONObject();
-            JSONObject json1 = new JSONObject();
-            //String chattoken =rs.getString("chattoken");
-            json2.put("to", "XXX");
-            json2.put("username","Ali");
-            json1.put("message","Masbro");
-            json2.put("data",json1);
-            System.out.println(json2.toString());
-        %>
         <!-- Firebase -->
         <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
         <script>
@@ -146,33 +136,26 @@
                 messagingSenderId: "1049009619420"
             };
             firebase.initializeApp(config);
-
+            
             messaging = firebase.messaging();
 
             messaging.requestPermission()
-              .then(function() {
-                console.log('Notification permission granted.');
-                return messaging.getToken();
-                // TODO(developer): Retrieve an Instance ID token for use with FCM.
-                // ...
-                
-              })
-              .then(function(token){
-                  console.log(token);
-              })
-              .catch(function(err) {
-                console.log('Unable to get permission to notify.', err);
-              });
+                    .then(function () {
+                        console.log('Notification permission granted.');
+                        return messaging.getToken();
+                        // TODO(developer): Retrieve an Instance ID token for use with FCM.
+                        // ...
+
+                    })
+                    .then(function (token) {
+                        document.getElementById("chattoken").value = token;
+                        console.log(token);
+                    })
+                    .catch(function (err) {
+                        console.log('Unable to get permission to notify.', err);
+                    });
+
             
-              var chattoken= messaging.getToken();
-              
-                console.log(chattoken);
-              
-              var getChatToken=function(){
-                  return chattoken;
-              };
-              
-              document.getElementById("chattoken").value = chattoken;
         </script>
     </body>
 </html>
diff --git a/MarketPlaceService/nbproject/private/private.properties b/MarketPlaceService/nbproject/private/private.properties
index 17b05e1fd355984e3470323a00669e8abef06ddb..0a28249b62f62baa723f11b21959dc63d18c0b1c 100644
--- a/MarketPlaceService/nbproject/private/private.properties
+++ b/MarketPlaceService/nbproject/private/private.properties
@@ -1,7 +1,7 @@
-deploy.ant.properties.file=/home/khrs/.netbeans/8.2/config/GlassFishEE6/Properties/gfv3-2049786751.properties
+deploy.ant.properties.file=C:\\Users\\Frys\\AppData\\Roaming\\NetBeans\\8.2\\config\\GlassFishEE6\\Properties\\gfv31137312071.properties
 j2ee.platform.is.jsr109=true
-j2ee.server.domain=/home/khrs/glassfish-4.1.1/glassfish/domains/domain1
-j2ee.server.home=/home/khrs/glassfish-4.1.1/glassfish
-j2ee.server.instance=[/home/khrs/glassfish-4.1.1/glassfish:/home/khrs/glassfish-4.1.1/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848
-j2ee.server.middleware=/home/khrs/glassfish-4.1.1
-user.properties.file=/home/khrs/.netbeans/8.2/build.properties
+j2ee.server.domain=C:/Users/Frys/GlassFish_Server/glassfish/domains/domain-client
+j2ee.server.home=C:/Users/Frys/GlassFish_Server/glassfish
+j2ee.server.instance=[C:\\Users\\Frys\\GlassFish_Server\\glassfish;C:\\Users\\Frys\\GlassFish_Server\\glassfish\\domains\\domain-client]deployer:gfv3ee6wc:localhost:4848
+j2ee.server.middleware=C:/Users/Frys/GlassFish_Server
+user.properties.file=C:\\Users\\Frys\\AppData\\Roaming\\NetBeans\\8.2\\build.properties
diff --git a/MarketPlaceService/nbproject/project.properties b/MarketPlaceService/nbproject/project.properties
index ea23c6106caaa611bfc917f77288b85cf0fb7116..c905708dde861a7660be42df682ebb4d7d1634d4 100644
--- a/MarketPlaceService/nbproject/project.properties
+++ b/MarketPlaceService/nbproject/project.properties
@@ -34,7 +34,7 @@ j2ee.compile.on.save=true
 j2ee.copy.static.files.on.save=true
 j2ee.deploy.on.save=true
 j2ee.platform=1.7-web
-j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
+j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
 j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
 j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
 j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar