Skip to content

NuclearRazor/GraphManipulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Graph Manipulator

This is an mini service where client can generate random undirected graph with shortest pathes

Options are:

  • vertex name length (like: Bob, Bobnoxious, ...)
  • count of nodes
  • edges weight ("power" of it's value set as length of characters)

"Client" side implemented by:

  • pure js (websockets, event handlers mainly)
  • D3 (graph visualization as svg object)
  • graphlib-dot (deserialize incoming bits thread to graphlib object)

To build with CMakeLists pass library pathes to:

  • OpenSSL (1.1.0+)
  • LIBUV
  • ZLIB
  • Boost (1.67+)

For example On Windows x64, MVS2017:

cmake -DCMAKE_BUILD_TYPE=release -DLIBUV_ROOT_DIR=$LIBUV_PATH -DZLIB_ROOT_DIR=$ZLIB_ROOT_DIR -DZLIB_LIBRARY=$ZLIB_LIB_PATH -DZLIB_INCLUDE_DIR=$ZLIB_INCLUDE_PATH -DOPENSSL_ROOT_DIR=$OPENSSL_PATH -DBOOST_ROOT=$BOOST_PATH -G "Visual Studio 15 2017 Win64" .. > log_cmake.txt 2>&1

In all cases, average errors connected with OPENSSL version and it might be errors for export symbols in uWS.lib like:

076 00000000 UNDEF notype () External | SSL_CTX_set_options

Check your OPENSSL version.

build target:

cmake --build . --target PathMapper --config release > log_build.txt 2>&1

UI side was implemented by:

  • HTML, CSS, bootstrap (3.3.7)

"Back-end" side was implemented by C++:

  • boost, graph library
  • uWS (uWebsockets)
  • json (nlohmann json or JSON for Modern C++)

Example:



In production:

  • various options on undirected graphs

About

Control nodes and edges, rendering by js, logic by C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages