Open Innovation Platform.
Enabling society to collaborate. Building a better future, together.
Alkemio has a structured domain model with a growing set of data representing users and organizations working together on topics they care about: Challenges!
This repository is for exploring ways for extracting value from this data. This can be via aggregation, usage in reports or by visualizing the information.
The implementation in this repository is a such that the vizualization can be created / extended separate from the Alkemio server / client - to allow for rapid experimentation.
The layout of this simple demonstration takes inspiration from https://github.com/danielstern/force-graph-example.
There are three steps to running this demonstration:
- Acquire: Interact with the Alkemio graphql api to capture the raw data.
- The queries that are used to acquire the data from Alkemio server are located under:
acquire/graphql
- Create a copy of the
.env.default
file, and save it as.env
. Edit it to specify the credentials to use to connect. - Run the following scripts:
npm run acquire-spaces
andnpm run acquire-contributors
. - These scripts will save their output into the following folder:
transform/src/acquired-data
- The queries that are used to acquire the data from Alkemio server are located under:
- Transform: Transform the raw data, combining if needed other data, to create the graph data suitable for usage in D3 display
- Move to the
transform
folder:cd transform
- Run the script to convert the data using
npm run transform-data
- This script places the resulting graph data in the following file:
display/public/data/transformed-data.json
- Move to the
- Display: View the results
- Move to the
display
folder:cd display
- Launch the web dev server using
npm start
, a browser will open to(http://localhost:8080/)[http://localhost:8080]
+ display the visualization
- Move to the
The connectivity graph is meant to provide a way of navigating the connectivity within the Spaces and Challenges hosted on Alkemio.
A sample image generated using this approach is shown below: