Will prefer offers for payment upon completion, but can pay up to half up front.
The task is to write an open source library for visualization of directed graphs in Julia. See GitHub - JuliaGraphs/GraphPlot.jl: Graph visualization for Julia. for an initial direction, but that one has a lot of issues including poor code quality. The basic version should simply graph based on a set of (node one, edge, node two) triples and then support visualizing LightGraphs.jl.
It should support self-edges, include labels for nodes and edges as well as avoid overlap. The interface should be consistent with Plots.jl.
For whoever might undertake this, there’s some cool research on using graph modular decomposition to visualize the structure of graphs:
The main issue is the complexity and difficulty of implementing graph modular decomposition. However, I implemented that already (thought it would be useful for something I was working on but it turned out not to be), and the code is here:
It even supports decomposition of directed graphs, which is fairly fancy (took me forever to get right). The main issue with this code is that it works on a matrix representation of a graph rather than any of the LightGraphs data structures. I’m sure it would be straightforward to port it to use the LightGraphs API instead.
I’d strongly suggest taking a look at GitHub - JuliaPlots/GraphRecipes.jl: Graph-related recipes to be used with Plots.jl before duplicating work. That repository has been rather undermaintained lately, but it should be a relatively simple effort for someone dedicated to brush it up to the standard as requested here. It is already compatible with LightGraphs. @Diego_Javier_Zea has the push rights to the repo, and recently updated it to Julia 1.0 compatibility.
The JuliaPlots organisation might be willing to hand over the GraphRecipes repo to you if you’d employ a person to bring it forward into a new and brighter future.
There is also a related package to LightGraphs, MetaGraphs which could hold node and edge labels. But that one requires some work on a less imperative interface.
GraphRecipes would be indeed a good base, it would need to gain ability to have directed graphs, self-edges and edge labels.
I do not mind if the repo remains under JuliaPlots org as long as maintainer is reasonable and active.