As I wrote recently I have in mind a pet project using graph databases with a dataset about Hungarian wines. I'm quite comfortable with the backend part such as handling the database and manipulating the the data I retrieve, but I cannot say the same about the frontend part.
So I had to explore what technology I could use for visualizing my data. When I was building my family tree application I used sigma.js but looking back at it, I didn’t find it very intuitive. Maybe because of my poor JS skills. Anyway, I decided to look around what is available to use. I started my exploration from Neo4j’s data visualization guide.
My first choice was Alchemy.js. At a first glance the code examples seemed quite easy to understand and I liked that there is some documentation. And in the end if it is listed on Neo4j’s site, can it be that bad? Well. For me it did not work out. I faced the first problems when I wanted to include in my
html files the library with a URL. The URL was broken. Okay… So I downloaded the library and copied the source code into my project. Not a big deal.
After some research it turned out that I had to include something else. If I remember well, it was d3.js, nothing more. But I’m not if it was the only library.
Finally I managed to plot a nice graph with some nodes representing Hungarian wine regions and sub-regions. It was nice.
However at the dependencies I met with d3.js which was also mentioned in the guide and at some other places. It was also mentioned that it’d be quite difficult to use for a newbie as me as you have to take care of a lot of configurations manually.
It’s said that taking the upper road is always beneficial. So I took it. Within less time and with less frustration I reached the same point as with Alchemy before. But it was mostly copy-pasting some parts from here and there and welding them together. Still - or more hence - there are some parts which are not working well. Such as gravity and scaling. Maybe they are not that important at the first iteration. But still…
The main idea is that at any point you learn the least necessary you need in order to make something work and then you start using it. Now I’m learning about data bindings and putting it into place. Then I move to stylings and transformations. In a few weeks I will get into a position where I will be in control of my UI and not the examples I find on the internet.