Sign inSign up

cyberreboot/crviz

By cyberreboot

•Updated about 6 years ago

Visualization tool for exploring large networks

Image
0

10K+

cyberreboot/crviz repository overview

⁠CRviz

Build Status Codacy Badge codecov Docker Hub Downloads

CRviz is our first attempt at visualizing networks differently. It's still an early prototype, and it's still under development. That said, we want to share the tool in this formative stage both because we think that our approach has the potential to improve the scalability and legibility of network data, and also because we're actively looking for feedback. So please send us your suggestions and comments!

For more details, please see this blog post⁠.

For a live demo, please check out https://cyberreboot.github.io/CRviz/⁠

⁠Build and run

⁠With Docker

This project includes a Dockerfile for convenient building and deployment.

To build and run, use the following command:

docker build -t crviz .
docker run -dp 80:5000 crviz

Note that if changes are made on the host machine, the build served by the docker container will not be updated. To stop the running deployment and kill the docker server:

docker stop crviz
⁠Without Docker
  1. Install or update npm (sudo apt install npm, npm install -g npm)
  2. Clone CRViz repo git clone https://github.com/CyberReboot/CRviz.git
  3. cd CRViz
  4. Run npm install && npm run build

The static files in the ./build directory should be ready for deployment.

To serve the application locally, run npm start. Changes made in your code will be automatically reloaded on http://localhost:5000⁠.

⁠Data Input

This tool supports loading datasets from URLs or by uploading local files. When loading dataset from a URL, ensure that Cross-Origin Resource Sharing⁠ is enabled at that URL.

In both cases, the tool expects the data to be in the format described below. For examples, see ./sample_data⁠.

⁠Data format
NameTypeRequiredDescription
configurationConfigurationObject⁠noconfiguration for this dataset
datasetarray<object>yesAn array of data points. All data points are expected to have the same schema.
⁠ConfigurationObject
NameTypeRequiredDescription
fieldsarray<AttributeObject⁠>noan array of attributes in this dataset.
⁠AttributeObject
NameTypeRequiredDescription
patharray<string>yesan array describing the path to the attribute in each data point.
displayNamestringnothe name of the attribute, default to joining the path array with .
groupablebooleannowhether the attribute can be used as a grouping in the hierarchy. Typically, non-categorical item should not be groupable. Default to true
⁠Preconfigured datasets

Preconfigured datasets (displayed in the dataset dropdown) are defined in src/datasets.json⁠.

This file is expected to contain an array of objects containing the following properties:

NameTypeRequiredDescription
namestringyesThe name of dataset (displayed in the dropdown)
urlstringyesthe URL pointing to the dataset.

After modifying, rebuild as described above for the changes to take effect.

⁠Development

This project is built with ReactJS⁠ and Redux⁠ (and related libraries) as an application framework. The visualization is built using D3.js⁠.

This project is a bootstrapped using create-react-app⁠.

Here are some quick commands to get started:

  • npm install: Install Node dependencies
  • npm start: Start the hot reloading development server.
  • npm test: Run the test suit and watch for changes.
  • npm build: Build a production optimized bundle of the app.
⁠Tools
⁠Project Structure
  • src/domain contains Redux reducers, action creators, selectors, and any other domain specific functions. redux-actions⁠ is being used to reduce boilerplate.

  • src/epics contains redux-observable⁠

  • src/features contains React components organized by features.

Tag summary

Content type

Image

Digest

Size

179.5 MB

Last updated

about 6 years ago

docker pull cyberreboot/crviz