How to embed neo4j browser result visualisation in web application - javascript

The neo4j browser, which can be accessed through http://neo4j:7474 (where neo4j is the neo4j host), is really great in visualising query results.
As I understand, a javascript library is responsible for talking to the database backend at bolt://localhost:7687 as well as for rendering the results.
How can this javascript library be used to display query results in an embedded manner in our main web application?
The web application should be responsible for composing the cypher query.
I would prefer if the web application backend would be responsible to GET the result from the database backend and pass the result to the javascript library for security reasons.
The javascript library should be responsible for rendering the result into a given <div></div>.
The user should be able to drag the nodes around, but not be able to manipulate data or send other queries through the ui. Thus, only the red-boxed result area should be visible.

This is not possible since Neo4j Browser is not designed to work as an embedded graph visualization tool.
However, you can use a graph visualization library to embed the graph visualization into your web application. Some examples of JavaScript graph visualization libraries:
D3.js
VivaGraphJS
Sigma
KeyLines
Alchemy.js
Alternatively, since Neo4j Browser is an Open-source tool you can checkout the project and modify it to achieve your goal.

According to the Neo4j documentation on visualization tools, there are 3 categories of visualization tools:
Embeddable tools with built-in Neo4j connections
Embeddable libraries without direct Neo4j connection
Standalone product tools
It sounds like you are looking for the first option. And under this, there is:
1. Neovis.js - https://medium.com/neo4j/graph-visualization-with-neo4j-using-neovis-js-a2ecaaa7c379
2. Popoto.js - http://www.popotojs.com
I recommend checking out Popoto for both ease of integration and best visualizations.
Reference: https://neo4j.com/developer/tools-graph-visualization/

Related

Read only access to Neovis.js

I am a rookie both in Neo4j and javascript.
I found out that the javascript Neovis.js can be used with a Neo4j database to render a visualization for queries. This is an excellent tool to develop and embed web applications using Neo4j. However, I soon realized that this has the potential to screw up the entire database since those queries can both read and write the database.
How do we avoid writing into the database when using Neovis.js?
Either don't allow any queries with the CREATE, MERGE, SET in your application to be executed or if you have an enterprise version create a read-only user.

Django app to run a python ML application

I have a python/pandas application that does data analysis and outputs reports to csv format. I would like to out an interactive front end UI on top of this application so the user can mix and match data, select parameters for scenario testing, have interactive charts and dashboards displayed on screen instead of csv etc.
I am looking to use Django, but for interactive charts, do I need to learn a javascript library (which one), or will Django be sufficient?
I recommend going to agree with Django (and moving your csv into a database). Out of the box Django 2 brings sqlite which is a file based database that would offer you the ability to swap database files if you wanted. I've found this (https://www.fusioncharts.com/django-charts/) django-charts package that incorporates interactive charts with Django, and seems to have lots of examples.

Generate charts without HTML / Browser

I have a node.js application that accesses data of a MySQL database and I want to generate charts from that data dynamically, to pipe it as image (PNG/JPG) through a HTTP server to the user. I've search for a little while now, but I was unable to find a library to do this without the HTML/canvas approach. Since I want to let the server do the rendering to use the graph in emails or also dynamically rendered PDF files, this isn't an option here.
What could be the approach here (with or without a library) ?
Edit to provide proof of own work: I found https://plot.ly, which is in terms of usage and result really close to fulfil my needs, but requires an internet connection, since it calls a remote API.
You could also try asking this in the Software Recs Stack Overflow. But one option that seems like it could fit your needs is ZingChart.
They have a phantomJS build for rendering static versions of charts. In addition, licensed users can access a Node.js build for server side charting.
Full disclosure, I'm on the ZingChart team so please let me know if I can help you review all your options.
There is a node wrapper for the chart library chartist. You could use this library to generate a SVG, and a svg2png lib to convert to PNG.
Well there are multiple options, I would use phantomjs (headless Webkit browser) to render the charts.
Why would this option be good? One of the reasons is that you don't need duplicated code for the server and client side coding, you could simply reuse the code. On server side create a html file with required scripts and data and render it.

Summarizing data using an MVC application

I am looking for either an existing framework or software that would allow us to summarize our large MySQL database and allow us to present the information in the form of charts or tables.
I have looked online and found a few that are standalone web services, however for our purposes we would need it to be embedded without our existing web app and able to run either on the front end or on our server.
we would also be able to make use of any existing framework(c#) for data aggregation as we could implement them in c# on our server and display the information using JavaScript. We are trying to avoid implementing our own version due to time constraints so any pre-made method would be preferable.
I know this is a fairly vague question but we are just looking for some suggestions as the topic of web based data analysis doesn't seem to return many useful options for us.

Framework for a Business Dashboard - MVC, browser accessible

We are attempting to create a few dashboards for one of our Businesses, fetching data directly from the SQL server. We know what kind of business logic & display we'll like to do - having already built the prototypes from SQL data exported in Excel, and now - having prototyped their wireframes as well. The dashboard will include dynamic timeline based line & bargraphs & geographical map overlays.
We are trying to identify the best platform to do it. Here are the constraints:
The database is SQL based
The frontend should be browser accessible - hence a pure desktop application is ruled out.
While for the first usecase, the database is MSSQL - we'll like the platform to be say PHP based (or Python etc, but not ASP.Net)
Prefer to have the platform giving the option to host it on our systems (since our database server may not be online, but behind a company LAN - and hence not accessible from any public server, without port opening, etc), as opposed to it being only on online SAS.
Now, we are trying to architecture pieces. One approach is to have a technology stack consisting of:
Database - which we can live with what we have (our data isn't large enough to require anything beyond SQL).
An application logic framework (preferably MVC), along with a good set of libraries for Analytic applications (eg processing time series, statistical analysis - or some glue logic for calling, say R).
Frontend JS / HTML libraries. For this, we have looked at GoogleCharts, HighCharts, Paper.js, Raphael, Angular.js, D3.js, and new Razorflow. We haven't yet been able to figure out the best options amongst these.
Any suggestions / comments for the JS libraries (point 3) to use? And if in PHP - suggestions for good application framework + analytics library (point 2) to use above? Or if not, another language along with a good supporting framework for this?
Another alternative we're exploring is moving to a completely UX based dashboarding - eg qlikview, Tableau, or klipfolio. kibana - on the same lines looks interesting, but seems more suited for logs & text data, not exactly our use case.
Within the Microsoft world (we are trying to avoid), devExpress seems like a complete suite - with frontend JS to the backend database integration.
Any suggestions / comments on the right platform to use?
Arvind
I am the co-founder of RazorFlow. Are you still looking for a dashboard framework to use among the options listed? Our PHP Bindings are quite powerful allowing you to build your entire application in pure PHP and not worrying about the HTML/CSS parts of it.
Let me know if you want to discuss further by reaching out to our support email at support -at- razorflow.com

Categories

Resources