|
| 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 | + |
| 61 | +* Jakub Krawczuk <[email protected]> |
| 62 | +* Salvatore Rinzivillo <[email protected]> |
| 63 | + |
| 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) © [OpenStreetMap](http://www.openstreetmap.org/copyright) © [CartoDB](http://cartodb.com/attributions) |
| 124 | +* Tileset sattelite © Esri — 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