neo4j-labs / neodash Goto Github PK
View Code? Open in Web Editor NEWNeoDash - a Dashboard Builder for Neo4j
Home Page: https://neo4j.com/labs/neodash/
License: Apache License 2.0
NeoDash - a Dashboard Builder for Neo4j
Home Page: https://neo4j.com/labs/neodash/
License: Apache License 2.0
As different tile types often need to have a larger footprint to be useful outside of fullscreen view (e.g. Graph tiles), but others don't need such a large footprint (e.g. Parameter Select tiles), there are often cases like the one in the attached image in which I end up with a good amount of vertical white space. Since we can only move tiles left and right within a dashboard right now, there's no way to take a short tile and place it beneath another short tile, if they're in the same row as a tall tile.
The most straightforward solution would be drag-and-drop tile placement, but I know that's difficult for this tech stack. So perhaps an up/down arrow to complement the left/right arrow functionality?
Implement a wrapper for heatmap charts.
https://nivo.rocks/heatmap/
We can map a returned path in Cypher to a multi-level Sankey or Sunburst diagram. (Request by Rob Martin)
Issue:
Bar chart is working as expected with the query below but Line chart gives an error.
Query:
MATCH (n:Event)
RETURN
apoc.date.format(TIMESTAMP(n.createdAt), 'ms', 'MM-dd') AS Day,
COUNT(n) AS Count
ORDER BY Day ASC
LIMIT 30
Error:
Data was returned, but it can't be visualized.
This could have the following causes:
Here is the same query working fine as a Bar chart:
Is there something I am doing wrong? I'd expect the bar and line charts to behave the same.
Thanks!
Hi Niels,
First of all, I like your dashboarding tool a lot, keep up the good work!
I'm currently working with a graph database that includes timestamps. It would be nice if it is possible to not only use numeric values for the x-axis, but also datetime-like values.
Hi Team,
I have performed the mandatory update of Neodash on Monday (3/01/22). After updating to the latest version (2.0.4) the Neodash is crashing and showing a white screen after a few seconds.
Issue - Dashboards are automatically getting closed as soon as we load them under Neodash. This is happening after updating Neodash to the latest version(2.0.4)
Please find the details below and the attached screenshot for more information -
Neo4j Desktop Version - 1.4.11
Neo4j DB Version - 4.2.10
Neodash Version - 2.0.4
Also please suggest a way to downgrade the Neodash version
Use-case 1: embedding a google slides presentation to go together with the graph-based reports
Use-case 2: embedding Neo4j bloom
Hi Niels,
When I export my dasyboard to JSON, I can see that the label selection is saved:
{
"title": "Which entities are involved?",
"query": "MATCH (c1:Country)--(:Entity)<-[:ORIGINATOR]-(f:Filing)-[:BENEFITS]->(:Entity)--(c2:Country)\nWHERE c1.name = \"Netherlands\"\nAND distance(c2.location, point({latitude: 53, longitude: 9})) < 3000000\nWITH c1, c2, sum(f.amount) as amount\nWITH c1, c2, apoc.create.vRelationship(c1, \"TRANSFER\", {amount: amount}, c2) as t\n\nMATCH path=(c2:Country)-[r]-(e:Entity)\nRETURN c1, t, c2, collect(path)[0..10]",
"width": "6",
"type": "graph",
"height": "3",
"selection": {
"Country": "location",
"Entity": "id"
},
"settings": {}
}
In this case I selected to show location
and id
on the nodes.
But when I import the JSON file again, the selected labels aren't applied. It defaults back to show name
and name
.
Would be great if this selection could be re-applied on import :)
Hi,
I have one graph where I would like to colour the relationships and modify their width with variables.
If I only do one of the two, it works fine.
If I add a variable for "Relationship Color Property" and another for "Relationship Width Property", the width property seems to be ignored.
Here is the graph without the colour variable:
And here with the colour (no other changes made):
The project is awesome and so is the online demo. It would be great if we can build docker images automatically and publish it to a registry so users can deploy more easily.
Hi,
I've been playing around a bit with NeoDash, and most features are very easy to use :)
One minor bug I found is in the map, if I have two nodes at the same location. In that case, only one of them is displayed, and the other just vanishes.
Hello.
I love NeoDash so far, it makes prototyping quick and easy.
I want implement a search on nodes that meet a certain condition, something like
match(x [....])
where x.$neodash_x_property CONTAINS $neodash_searchword
return x limit 1000
where $neodash_x_property
is selected by a parameter select
and $neodash_searchword
is selected using a free text field.
Am I missing some advanced option to use the current parameter select as a free text input?
Are there any design choices or technical hurdles opposing such an implementation?
I do know that searching on properties is inefficient.
My data set is small. << 1M nodes
The search will be rarely used. I cannot remodel the graph. (It wouldn't make sense aswell, since this feature will rarely be used)
Thanks for considering this change!
Suggestion from Kees to use OpenStreetMap or OpenLayers
Hi again,
one larger bug that confused me a lot (and still does) happens when I try to create a Line Chart.
I can get the data into a nice table without problems:
But then, when I switch to a Line Chart, I get this message:
If I save the dashboard as a json, close the browser (Chrome / Edge), and import the saved dashboard, at least I can select the axis:
Now, for the y-axis, at first it only gives me "xhour" as an option. If I click that, the option suddenly disappears and I get the correct options for the chart. I can then finally display the chart.
In the table and graph visualization view, certain data types are sometimes rendered incorrectly.
For free text Parameter Select tile type (although probably relevant for other types of PS tiles too), I'm not seeing the text box expand with input/have the ability to be expanded regardless of tile size. I have a use case in which users will be inputting a list of strings that are then used for filtering elsewhere, so they may need a fair amount of space in the text box to enter all their words of interest. Is there a way to do this? If not, could this be added to the feature wishlist please?
We are developing a neodash prototype, and we were interested in running the 2.0.0-preview version. We can’t get it to build unfortunately. I could post the full error log, but the main issue seems to be missing modules. We are using node 16. Is the package.json on the develop branch complete?
Apologies if we are just too early in wanting to try the new version.
(And thanks for developing neodash!)
This tool is extremely helpful for us when we're prototyping out a visualization set for a new client. However, due to some restraints on client systems, we can't always install Neo4j Desktop and instead clients just access the remote graph server we've setup via their web browser. If we could set up NeoDash to run on a pre-specified port in a similar fashion, that would be amazing!
Hi and thanks for this great tool.
After the recent update to v2, I noticed a number of bugs in existing dashboards (also present in the newly created ones). I created a brief list with screenshots. All of the following were working in the previous version:
1. Adding a Parameter Select box: The Property Name dropdown menu is not updated based on the selection of the Node Label. That leads to not being able to select node-specific properties.
Similar to 1. the available resources for visualization are not updated in the dropdown menu.
Nodes with multiple labels (e.g. a node is of label "Resource" and "nS0_EC-Project") cannot be differentiated and color-coded.
It's possible that having multiple labels for each node is the source for this confusion, although it's still unclear to me as to why, given that it worked perfectly in the previous version.
I am using Neodash: v2.0.2 and Neo4j Desktop: v1.4.10.
Is it feasible to allow Parameter Select
to use the Cypher query output? Thanks!
Hey there,
Failed at building in docker container (centos8) image, tried with node12 with npm6. Here are my steps :
[root@8a4add468cc0 neodash]# npm install
..
[root@8a4add468cc0 neodash]# npm run build
..
ERROR in ./src/chart/BarChart.tsx
Module not found: Error: Can't resolve '@graphapps/charts/dist/components/reports/bar' in '/usr/local/src/neodash/src/chart'
@ ./src/chart/BarChart.tsx 2:0-70 12:42-51
@ ./src/config/ExampleConfig.tsx
@ ./src/modal/DocumentationModal.tsx
@ ./src/dashboard/DashboardDrawer.tsx
@ ./src/dashboard/Dashboard.tsx
@ ./src/application/Application.tsx
@ ./src/index.tsx
ERROR in ./src/chart/LineChart.tsx
Module not found: Error: Can't resolve '@graphapps/charts/dist/components/reports/line' in '/usr/local/src/neodash/src/chart'
@ ./src/chart/LineChart.tsx 2:0-72 19:38-48
@ ./src/config/ExampleConfig.tsx
@ ./src/modal/DocumentationModal.tsx
@ ./src/dashboard/DashboardDrawer.tsx
@ ./src/dashboard/Dashboard.tsx
@ ./src/application/Application.tsx
@ ./src/index.tsx
I see that package.json points at "@graphapps/charts": "github:nielsdejong/charts#cd8bf3707d48f2c34ec6a1ad126cfd28b5ac3065", not sure if this commitid has broken code.
Even tried with following but getting the same error :
[root@8a4add468cc0 neodash]# npm install -g @graphapps/charts
[root@8a4add468cc0 neodash]# export NODE_PATH=/usr/local/lib/node_modules/
Hi Niels,
So far I really enjoy playing around with Neodash! My local installation works fine (latest dev branch). But the version hosted at neodash.graphapp.io seems to have a glitch with the sidebar. It won't collapse and is always on top of the dashboard. Perhaps it needs to be redeployed with the latest version?
I'd love to show Neodash to some of my colleagues and sending them a link to neodash.graphapp.io would definitely be the easiest way to do so :)
A few different thoughts as I'm using the Single Number Tile on ways to improve it:
Hi again,
as you can see, I am busy building dashboards.....
I have a couple of dropdown menus for graphs etc where there are a lot of entries (let's say fifty or so). I am not sure what criteria they are currently being ordered by, but for human users it would be really nice if they could be sorted alphabetically, with "(no label)" either on top or at the bottom.
As of now the app only works with node 12 (tested). There seems to be an issue with node 16 not building the app:
#30 (comment)
(Request from user)
Example: have a search field with the name of a product that is added to the query.
In a more advanced version, I could have a drop-down that is tied to another cypher query which lists all available products.
Hello,
thank you for this awesome dashboard functionality.
When I run a dedicated cypher query, I get nice chart (see image on left). However Parameter select does not show any options. I assume you are fetching them from a function like 'call apoc.meta.data()'. Unfortunately, that call also does not finish within a minute when I run it in neo4j browser. A simple call to find all node labels ("MATCH (n) RETURN distinct labels(n)") already takes half a minute for my case. Our DB contains 55 Mio. nodes and 100 Mio. relationships. Am I correct that slow query time is the problem here? And if, is there a way around maybe?
Thanks in advance!
also assign on_row_click event for tables, to set parameter in other query.
Reported bug on 4K monitors with 1/2 screens generating horizontal scrollbars for d3 charts
When I try to share the dashboard via Share from Neo4j, another user I send the link to can't load it (error message attached). It appears to be having issues with the credentials, but I've set Include Connection Details
and Standalone Dashboard
both to "Yes". Note that I've tested this on both an HTTP-accessible Neo4j server and an HTTPS-accessible one, with the same problem both times. Any ideas on what could be happening? Note that I get the same error as the other user if I try to open the link.
Addition: a feature to let dashboard builders specify charts that are connected, e.g. filtering a report by clicking/selecting parts of the another visualization:
This click action should set a parameter $neodash_xyz
, just like a parameter selection. The parameter can then be used in other reports.
The graph tile type is quite good, thank you!
As you can see in the screenshots below, if you have a long-value property in a node, when you click on the node to see its pop-up pane in fullness, the text is all right-justified. As this makes it look like all other properties are null/blank (until you scroll all the way to the right), it would probably be more helpful if the property value text were left-justified.
Just wanted to leave this here for others who may struggle with showing nodes on the map.
I have nodes without latitude/longitude attributes, but they are related to a Location node which has them.
In order to put those nodes on the map, in the right location, I had to use this Cypher query:
MATCH (n)-[]-(l:Location)
WITH collect(n{.*, id: id(n), label: labels(n), latitude: l.latitude, longitude: l.longitude}) as items
return items
Basically this keeps all the attributes of node n
and temporarily adds lat/long attributes (only for plotting, not modifying in the database). The trick was to also add the id
and label
, without them the map wouldn't plot the returned data.
Perhaps it would be an idea to document what format the map chart expects.
Hello again,
This may be a feature rather than a bug, but it confused me for quite some time, so I'll share it anyway:
If I have a bar chart, in my case a timeline with one bar for each hour, and I select a variable to group by, it looks good.
If I do not group by any variable, I only get the data that was marked in yellow in the graphic above.
Why? What I would expect to see is either
Hi,
thanks for the latest version 2.0.6 :)
We would be interested in a standalone deployment of a dashboard without any editing capabilities anymore to avoid people misuing the DB. When we deploy testwise as "standalone", the menu and the possibility to make the app editable is still there. Maybe we are using the app wrongly too. Could you maybe provide a small description also in the docs how this would be possible?
I'm finding that I need to extend my query response time beyond the default 20 seconds, due to the size of my graph (I'm only able to get it to execute within 75 seconds after implementing relevant indexes). Is there any way to adjust the max query response time configuration without needing to build and deploy the project yourself (e.g. via the interface provided on http://neodash.graphapp.io/)?
Allow the user to build reports that span multiple pages.
I'm thinking a 'tab' selection at the top of the page with which you can switch pages.
A multi-page report should be saved in a single JSON.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.