Skip to content

Commit 240daf4

Browse files
committed
Initial commit
0 parents  commit 240daf4

File tree

132 files changed

+286108
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+286108
-0
lines changed

.eslintrc.json

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"commonjs": true,
5+
"es6": true,
6+
"node": true
7+
},
8+
"parserOptions": {
9+
"ecmaFeatures": {
10+
"arrowFunctions": true,
11+
"classes": true,
12+
"defaultParams": true,
13+
"destructuring": true,
14+
"jsx": true,
15+
"modules": true,
16+
"spread": true,
17+
"templateStrings": true,
18+
"unicodeCodePointEscapes": true
19+
},
20+
"sourceType": "module"
21+
},
22+
"rules": {
23+
"comma-dangle": "off",
24+
"constructor-super": "warn",
25+
"curly": "off",
26+
"eqeqeq": "off",
27+
"new-cap": "warn",
28+
"new-parens": "warn",
29+
"no-const-assign": "warn",
30+
"no-dupe-args": "warn",
31+
"no-dupe-keys": "warn",
32+
"no-eq-null": "warn",
33+
"no-floating-decimal": "warn",
34+
"no-inline-comments": "warn",
35+
"no-inner-declarations": "warn",
36+
"no-invalid-this": "off",
37+
"no-octal": "warn",
38+
"no-shadow-restricted-names": "warn",
39+
"no-shadow": "warn",
40+
"no-this-before-super": "warn",
41+
"no-undef": "off",
42+
"no-unreachable": "warn",
43+
"no-unused-vars": "off",
44+
"no-use-before-define": "off",
45+
"no-var": "warn",
46+
"one-var-declaration-per-line": "warn",
47+
"prefer-const": "off",
48+
"prefer-template": "warn",
49+
"Require-jsdoc": "off",
50+
"semi": "warn",
51+
"spaced-comment": "warn",
52+
"strict": "warn",
53+
"use-isnan": "warn",
54+
"valid-jsdoc": "off",
55+
"valid-typeof": "warn"
56+
}
57+
}

.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules
2+
Dockerfile
3+
dist/**/*
4+
configurator/node_modules
5+
configurator/public/dist

LICENSE

+674
Large diffs are not rendered by default.

README.md

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# visFramework
2+
3+
This readme contains information on how to build and run the framework. You can find the full documentation in [/docs/documentation.md](./docs/documentation.md).
4+
5+
1. [visFramework](#visframework)
6+
1. [Building](#building)
7+
2. [Running on a Single Device](#running-on-a-single-device)
8+
3. [Running for Multiple Devices](#running-for-multiple-devices)
9+
4. [Sharing a Session via Share Button and Connector](#sharing-a-session-via-share-button-and-connector)
10+
5. [Usage](#usage)
11+
6. [Authors](#authors)
12+
7. [License](#license)
13+
14+
## Building
15+
16+
This is optional, the development version (not minified) works without building.
17+
18+
1. Install [Node.js](https://nodejs.org/en/)
19+
2. Run `npm install`
20+
3. For building a development version of the library run `npm run build:development`
21+
4. For building a minified version of the library run `npm run build:production`
22+
23+
If you added or removed any files, you need to make sure that the [build.js file](./scripts/build.js) contains all JavaScript files!
24+
25+
## Running on a Single Device
26+
27+
Open [index.html](./index.html) for the development version or [index_production.html](./index_production.html) for the production version with a web browser.
28+
29+
## Running for Multiple Devices
30+
31+
If you want to display views on separate devices, you have to start the included websocket server via `npm start`. The server runs on port 80 by default, you can configure this in [pakcage.json](./package.json)
32+
33+
The main part of the framework with the toolbar is then available on the local machine at [http://127.0.0.1/?channel=1](http://127.0.0.1/?channel=1).
34+
35+
Now choose a data provider, simulation and the visFramework as visualization to display any data.
36+
37+
In another browser tab or on another device you can now access any of the currently displayed views via `http://<ipaddress>/?channel=1#<viewname>` (example: [http://127.0.0.1/?channel=1#filterInfo](http://127.0.0.1/?channel=1#filterInfo)).
38+
39+
## Sharing a Session via Share Button and Connector (deactivated in example)
40+
41+
For this feature the framework must be served via a Node.js server.
42+
43+
1. Make sure that all Node.js modules are installed (`npm install` in the project root)
44+
2. Start the server with `npm start`
45+
3. In the session you want to share, press the share button on the right side of the toolbar
46+
4. On a second client choose the *Synchronized VF-Clients* connector
47+
48+
## Usage
49+
50+
Information on the usage is shown on a help page. Click the `(?)` button on the top-right or select `(?) Help & Information` from the menu if the page is shown in a narrow viewport.
51+
52+
Help for a view is shown when hovering, clicking or tapping the view's title.
53+
54+
## Authors
55+
56+
Authors of this project (comprising ideas, architecture, and code) are:
57+
58+
* Robert Krueger <[email protected]>
59+
* Sebastian Alberternst <[email protected]>
60+
* Frank Heyen <[email protected]>
61+
* Jakub Krawczuk <[email protected]>
62+
* Salvatore Rinzivillo <[email protected]>
63+
* Simon Kaier <[email protected]>
64+
* Rezzakul Haider <[email protected]>
65+
66+
This project and code was mainly developed by:
67+
68+
* [USTUTT](https://www.uni-stuttgart.de/en/index.html) - University of Stuttgart, Institute for Visualization and Interactive Systems
69+
* [DFKI](https://www.dfki.de/web?set_language=en&cl=en) - German Research Center for Artificial Intelligence
70+
71+
Parts of the project and code were developed as part of the [EU H2020](https://ec.europa.eu/programmes/horizon2020/) [project](https://www.cimplex-project.eu/) *CIMPLEX* - Bringing *CI*tizens, *M*odels and Data together in *P*articipatory, Interactive Socia*L* *EX*ploratories.
72+
73+
Futher partners that deliver data and simulations via webservice access are:
74+
75+
* ETHZ (ETH Zurich)
76+
* UCL (University College of London)
77+
* Közép-európai Egyetem (Central European University, CEU)
78+
* ISI (Fondazione Istituto per l'Interscambio Scientifico)
79+
* CNR (National Research Council)
80+
* FBK (Bruno Kessler Foundation)
81+
82+
## Client External Dependencies
83+
84+
The table below lists all used external libraries and their respective uses in the client.
85+
86+
| Name | Used for | License \* |
87+
| ------------------------------------------------------------ | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
88+
| [Bootstrap](http://getbootstrap.com/) | general page layout | [MIT License](https://github.com/twbs/bootstrap/blob/master/LICENSE) |
89+
| [Colorbrewer](http://colorbrewer2.org/) | color palettes that are used in color mapping | [Apache License 2.0](https://github.com/axismaps/colorbrewer/blob/master/LICENCE.txt) |
90+
| [Crossfilter](https://github.com/crossfilter/crossfilter/) | data filtering | [Apache License 2.0](https://github.com/crossfilter/crossfilter/blob/master/LICENSE) |
91+
| [d3 v3](https://d3js.org/) | utility functions, scaling, interaction, colors and timeline. | [BSD 3-clause "New" or "Revised" License](https://github.com/d3/d3/blob/master/LICENSE) |
92+
| [d3 v4](https://d3js.org/) | updated packages for some functionality | [BSD 3-clause "New" or "Revised" License](https://github.com/d3/d3/blob/master/LICENSE) |
93+
| [d3forcebundle](https://github.com/upphiminn/d3.ForceBundle) | force directed edge bundling with d3 | [GNU General Public License v2.0](https://github.com/upphiminn/d3.ForceBundle/blob/master/LICENSE) |
94+
| [Font Awesome](http://fontawesome.io/) | icons | [SIL OFL 1.1 (font), MIT License (code)](http://fontawesome.io/license/) |
95+
| [gLayers](https://github.com/Sumbera/gLayers.Leaflet) | canvas Layer for Leaflet | [MIT License](https://github.com/Sumbera/gLayers.Leaflet/blob/master/LICENSE.TXT) |
96+
| [jLouvain](https://github.com/upphiminn/jLouvain) | community detection | [MIT License](https://github.com/upphiminn/jLouvain/blob/master/LICENSE) |
97+
| [jQuery](https://jquery.com/) | HTTP requests and DOM manipulation | [MIT License](https://jquery.org/license/) |
98+
| [Leaflet](https://github.com/Leaflet/Leaflet) | geographic map | [BSD 2-clause "Simplified" License](https://github.com/Leaflet/Leaflet/blob/master/LICENSE) |
99+
| [Mustache](https://github.com/mustache/mustache.github.com) | HTML logic-less templates | [MIT License](https://github.com/mustache/mustache.github.com/blob/master/LICENSE.md) |
100+
| [Sortable](https://github.com/RubaXa/Sortable) | view drag and drop to reorder views | [MIT License](https://github.com/RubaXa/Sortable) |
101+
| [inflection.js](https://code.google.com/p/inflection-js/) | word inflection | [MIT License](https://code.google.com/archive/p/inflection-js/) |
102+
| [cimplex-decoder](https://github.com/cimplex-project/cimplex-decoder) | a decoder library for cimplex services | [Apache License 2.0](https://github.com/cimplex-project/cimplex-decoder/blob/master/LICENSE)
103+
| [cimplex-globe](https://github.com/cimplex-project/cimplex-globe) | a library for visualizing data on the globe | [Apache License 2.0](https://github.com/cimplex-project/cimplex-globe/blob/master/LICENSE)
104+
| [socket.io](https://socket.io/) | Socket.IO enables real-time bidirectional event-based communication. | [MIT License](https://github.com/socketio/socket.io/blob/master/LICENSE)
105+
106+
\* *as of 2018-01-22*
107+
108+
## Server External Dependencies
109+
110+
The table below lists all used external libraries and their respective uses in the server.
111+
112+
| Name | Used for | License \* |
113+
| ------------------------------------------------------------ | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
114+
| [socket.io](https://socket.io/) | Socket.IO enables real-time bidirectional event-based communication. | [MIT License](https://github.com/socketio/socket.io/blob/master/LICENSE)
115+
| [express](https://github.com/expressjs/express) | Fast, unopinionated, minimalist web framework for node. | [MIT License](https://github.com/expressjs/express/blob/master/LICENSE)
116+
| [uuid](https://github.com/kelektiv/node-uuid) | Fast, unopinionated, minimalist web framework for node. | [MIT License](https://github.com/kelektiv/node-uuid/blob/master/LICENSE.md)
117+
| [ws](https://github.com/websockets/ws) | imple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js | [MIT License](https://github.com/websockets/ws/blob/master/LICENSE)
118+
119+
\* *as of 2018-01-24*
120+
121+
## Tile providers used in example
122+
123+
* Tileset light_gray, light_gray(no labels), dark and dark(no labels) &copy; [OpenStreetMap](http://www.openstreetmap.org/copyright) &copy [CartoDB](http://cartodb.com/attributions)
124+
* Tileset sattelite &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN,
125+
IGP, UPR-EGP, and the GIS User Community
126+
127+
## Additional contributions
128+
129+
* countries.json - borders of all countries based on the data by [Natural Earth Data](http://www.naturalearthdata.com/)
130+
131+
132+
## License
133+
134+
See [LICENSE](./LICENSE).

0 commit comments

Comments
 (0)