Giter Site home page Giter Site logo

rwth-acis / ocd-web-client Goto Github PK

View Code? Open in Web Editor NEW
3.0 36.0 3.0 1.89 MB

This repository contains the code of the Web client for the OCD service.

Home Page: http://webocd.dbis.rwth-aachen.de/OCDWebClient/login.html

License: Other

CSS 1.79% JavaScript 16.37% HTML 81.80% Dockerfile 0.04%
las2peer webocd web-client

ocd-web-client's Introduction

OCD-Web-Client

This repository contains the code of the web client for the OCD service at https://github.com/rwth-acis/REST-OCD-Services. As the WebClient only acts as the UI of WebOCD, you will need to have an instance of the service running as well.

Quick Set-Up Guide

Client Configuration at Learning Layers

To set up the Learning layers OIDC login, either use an existing Learning Layers client or register your own at https://auth.las2peer.org/auth/realms/main/account/ (You'll need a learning layers Account). The client at learning Layers has to have the following configurations:

  • The web clients login page has to be mentioned as a Redirect URI
  • The Access Type should be public and you should use Implicit Flow
  • You need to have your clients' origin, e.g. http://localhost:<your-port>, and https://api.learning-layers.eu/* as an allowed Web Origin (Lazy People can just use * to allow any). Keep in mind that it needs to be the exact origin, an extra / may for example lead to a CORS policy block.

Adjusting the Files

You will then have to change the data-clientid field to your client id from Learning Layers and the data-redirecturi field to your web clients address (usually something like http://localhost:<your-port>). This has to be done in both.

  • login.html
  • JS/contentHandler.js

Finally, change the values of baseUrl to the services address in the following files so that requests are addressed to it:

  • JS/requestHandler.js
  • JS/simulation/requestHandler.js
  • JS/simulation/jsonRequestHandler.js

Finally, dont forget to run npm install to get all the needed packages.

You can then for example use the http-server package dependency of the web client to have the server running: Do ./node_modules/.bin/http-server -p <your-port> (or npx http-server -p <your-port>) from the root directory of the project and optionally add -c-1 to disable caching. Now, the web client should be able to communicate with the OCD service and be reachable under http://localhost:<your-port>.

Now, the web client should be able to communicate with the OCD service.

Quickstart with a Docker Container

To build a docker image for the OCD-Web-Client that connects to the WebOCD Service running locally with the default parameters, you can navigate to the OCD-Web-Client directory and execute

docker build -t <image_name> .

To run a docker container interactively, based on the above created image that connects to the default address of http://localhost:<your-port> you can execute

docker run -it -p <your-port>:8090 <image_name> 

Now you should be able to navigate to http://localhost:<your-port> and communicate with the service as you would without docker

ocd-web-client's People

Contributors

beka-beka avatar beka-zhvania avatar cagatayogut avatar ckrae avatar maxkissgen avatar minemeraj avatar pedela avatar tbiele avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ocd-web-client's Issues

Display Creation Method and Graph Characteristics in Graph overview

Currently the creation method attribute is only displayed for running algorithms and can be set for graphs on graph import. But for graphs this attribute is never displayed in the graph overview or the graph tables.
The creation method therefore needs to be shown in the graph table and along with the graph characteristics it also needs to be shown in a graphs overview.

Show inactivity information

The service now has a maximum period of inactivity for users until content deletion. We should show that here as well

Show which graph types algorithms support

Currently, the user does not know which graph types are supported by which algorithm if they have no previous knowledge of the algorithm.
This could for example be alleviated by tags being displayed for the different graph types next to the name

Notify clearly about Log-In Expiration

Currently, an expired Log-In yields a "Service Connection Failure"

It should be conveyed more clearly to the user that a re-log-in has to be done.

There could potentially also be an option to do such a re-log-in on refreshing the page.

Dependency Management

Some kind of dependency management would be great, like npm. Currently, libraries are pasted in into the JS directory, it seems.

Redirect to Clicked Page on Opening a New Tab

Currently, the user is redirected to the login page (and if logged in, subsequently the network analysis page) when opening a new tab no matter which link they clicked on. They should be redirected to the actual clicked page.

Cover Export from the Web-Client

Currently, only the export from the cover graph in JSON format is possible, but not the actual cover itself.

The WebOCD Service offers 2 possibilities for cover export that make sense for this:

  • Cover XML

  • Labeled Membership Matrix

  • Check both formats for correctness

  • Implement export of labeled membership matrices (Done through #11)

  • Implement export of Cover XMLs (Done through #16)

Make GraphML export possible through WebClient

The service offers export of graphs through GraphML but we do not account for this in the web client. As this likely is a useful feature it should be made possible to the users to access it. A good example of how to do this could be in the already covered cover export.

Do not display number of communities while still running

When an algorithm is running the number of communities is displayed on the page of the cover which is really odd. The number of communities is set to the number of nodes in the graph. This makes the impression that the algorithm has finished and it puts all nodes in their own community. It might be better to show something like "in progress" or "running " instead of a number because technically no communities have been found yet.

Add sorting over multiple pages

Currently, sorting covers/graphs/centralities by any column only sorts the entries on the site you are currently on. This can be annoying for people having more covers, centralities or graphs than one page allows for.
Multy-page sorting therefore needs to be added.

(originally mentioned in #19)

Better Responses on User Actions

Currently, a user can be left in the dark for a while when they upload a graph, run an algorithm or request a visualisation until the action is completed.

It would be good to show that the users actions were at least recognised by the Web Client and that a response from the service is yet to come, e.g. loading icons and notifications. A progress bar could also be of help, if possible

Notify people of next deletion date by login

With the new version of the service we offer the possibility to periodically delete data when users have not logged in after a certain time frame. It will be necessary to notify the users about when this happens (or if the option is switched off or not)

Make the graph table in the import page sortable

The graph table in the graphs.html and import.html are almost same. And the graphs in the graphs.html can be sorted according to the name or nodes(edges) count. But that in the import.html seems to also have this function, but it doesn't work now according to some bugs, need to be fixed
thumb-Clipboard - 12  Juni 2022 16_33
.

Unexpected behaviour of the sorting functionality on the page Community Detection

The sorting functionality on the page Community Dection of the Web Client is somehow mixed up.
When clicking on Name or Creation in the head of the table, the entries are sorted by the graph's name.
When sorting by the column Graph, the entries are sorted by Name.
When sorting by communities, the entries are sorted by Creation method.

Another strange behavoir is that when there are at least 2 pages of detected communties on this site, sorting the covers bei any column only sorts the entries on the site you are currently on. In other word, the sorting functionality ignores entries which are not on the current visible page. It would be nice if all entries in this list regardless of their location are consider when sorting the entries.

Documentation for OCD Algorithms

As of yet, only Centralities provide access to information about their original author/paper and a basic explanation.

This should also be the case with OCD algorithms.

Have option to show only compatible algorithms

Currently, all ocd algorithms are shown for a graph, no matter whether they are compatible or not. We should have at least an option (e.g. a tickable box) to show only those compatible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.