diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
index 398bfee..7601478 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
@@ -18,10 +18,15 @@
 import com.sun.jersey.multipart.FormDataParam;
 import org.onlab.rest.BaseResource;
 import org.onosproject.app.ApplicationAdminService;
+import org.onosproject.core.Application;
+import org.onosproject.core.ApplicationId;
 
 import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import java.io.IOException;
@@ -41,4 +46,13 @@
         return Response.ok().build();
     }
 
+    @Path("{name}/icon")
+    @GET
+    @Produces("image/png")
+    public Response getIcon(@PathParam("name") String name) throws IOException {
+        ApplicationAdminService service = get(ApplicationAdminService.class);
+        ApplicationId appId = service.getId(name);
+        Application app = service.getApplication(appId);
+        return Response.ok(app.icon()).build();
+    }
 }
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
index 6f8eee9..80c1e75 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
@@ -45,15 +45,18 @@
     private static final String STATE = "state";
     private static final String STATE_IID = "_iconid_state";
     private static final String ID = "id";
+    private static final String ICON = "icon";
     private static final String VERSION = "version";
+    private static final String CATEGORY = "category";
     private static final String ORIGIN = "origin";
     private static final String DESC = "desc";
+    private static final String URL = "url";
 
     private static final String ICON_ID_ACTIVE = "active";
     private static final String ICON_ID_INACTIVE = "appInactive";
 
     private static final String[] COL_IDS = {
-            STATE, STATE_IID, ID, VERSION, ORIGIN, DESC
+            STATE, STATE_IID, ID, ICON, VERSION, CATEGORY, ORIGIN, DESC, URL
     };
 
     @Override
@@ -99,9 +102,12 @@
             row.cell(STATE, state)
                 .cell(STATE_IID, iconId)
                 .cell(ID, id.name())
+                .cell(ICON, id.name())
                 .cell(VERSION, app.version())
+                .cell(CATEGORY, app.category())
                 .cell(ORIGIN, app.origin())
-                .cell(DESC, app.description());
+                .cell(DESC, app.description())
+                .cell(URL, app.url());
         }
     }
 
diff --git a/web/gui/src/main/webapp/app/view/app/app.html b/web/gui/src/main/webapp/app/view/app/app.html
index f3c892e..2cd9d65 100644
--- a/web/gui/src/main/webapp/app/view/app/app.html
+++ b/web/gui/src/main/webapp/app/view/app/app.html
@@ -41,10 +41,13 @@
             <table>
                 <tr>
                     <td colId="state" class="table-icon" sortable></td>
+                    <td colId="icon" col-width="36px">Icon </td>
                     <td colId="id" sortable>App ID </td>
                     <td colId="version" sortable>Version </td>
+                    <td colId="category" sortable>Category </td>
                     <td colId="origin" sortable>Origin </td>
                     <td colId="desc" col-width="475px">Description </td>
+                    <td col-width="50px">URL </td>
                 </tr>
             </table>
         </div>
@@ -64,10 +67,13 @@
                     <td class="table-icon">
                         <div icon icon-id="{{app._iconid_state}}"></div>
                     </td>
+                    <td><img data-ng-src="./rs/applications/{{app.icon}}/icon" height="28px" width="28px" /></td>
                     <td>{{app.id}}</td>
                     <td>{{app.version}}</td>
+                    <td>{{app.category}}</td>
                     <td>{{app.origin}}</td>
                     <td>{{app.desc}}</td>
+                    <td><a href="{{app.url}}" target="_blank">LINK</a></td>
                 </tr>
             </table>
         </div>
