Prof of concept to see if it was possible to create a mind-mapping/diagraming tool that could be easily updated and manipulated via keyboard shortcuts. Warning: Not for the faint of heart, it will drive you mad if you try to use the mouse. Although some pieces can be manipulated accessed via the mouse, this is not by any means the default or the way D3D works.
Since my Unix days vi/vim
has been my editor of choice and since those days I have gravitated towards finding vi/vim
inspired tools for productivity. I've been successful at finding many different tools that are vi/vim
inspired, and about the only thing I haven't been able to find was a tool to quickly generate mind-maps without the use of a mouse (I know, crazy thought). D3D was inspired by vi/vim
shortcuts, however it has taken on a mind of it's own. Even though you can use some vi/vim
shortcuts(jk mainly), I have moved towards using hint keys, similar to what you would find in the surfingkeys and vimium C chrome plugins.
Here are some of the main (the ones I remember from memory) tools/libraries used to build this project, not in any specific order.
vuetify.js - component framework used
d3-dagre - (deprecated) main tool used to generate the diagram
d3.js - main library used by d3-dagre
neutralinojs - cross-platform tool to build on windows, linux, and mac. While D3D runs fine on a Windows machine with a google chrome browser tab open, the same is not true on MacOS and Linux. I used neutralinojs and it's chrome option as a solution for the shortcuts(events) issues I experience
rethinkdb - backend database used to save the diagrams
samus.api - golang api server used to communicated with the rethinkdb database
velocity - used for some of svg animation
Still a work in progress, but here are some of the main things that need work
[ ] Cluster rendering, I may need to look at a new library to fix this issue. Hitting/pressing the esc
key (re-renders the diagram) a few times fixes the issue, but I haven't been able to figure out how to properly fix the problem
[ ] Some vuetify.js animations still needs some TLC
-
Get the necessary tools:
yarn global add @neutralinojs/neu
-
Clone this repository and
cd
into it:git clone https://github.com/smetroid/d3d.git && cd d3d
-
Neutralino concurrency dependency to run both neutralino js and the frontend vue application
npm install
-
Setup the "backend" part:
neu update
-
Setup frontend, installs the nodejs modules for the frontend
npm run setup
-
Run dev mode
npm run dev
-
Run a build
npm run build-release