Git Product home page Git Product logo

crviz's Introduction

CRviz

Build Status Codacy Badge codecov Docker Hub Downloads Greenkeeper badge

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

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

Name Type Required Description
configuration ConfigurationObject no configuration for this dataset
dataset array<object> yes An array of data points. All data points are expected to have the same schema.

ConfigurationObject

Name Type Required Description
fields array<AttributeObject> no an array of attributes in this dataset.

AttributeObject

Name Type Required Description
path array<string> yes an array describing the path to the attribute in each data point.
displayName string no the name of the attribute, default to joining the path array with .
groupable boolean no whether 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:

Name Type Required Description
name string yes The name of dataset (displayed in the dropdown)
url string yes the 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.

crviz's People

Watchers

 avatar

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.