Open neenjaw opened 4 years ago
I think this is easily accomplished by only showing the exercises's closest dependencies (which then represent the unlock progression) then displaying the dependencies as an additional layer which can be hidden or visible.
I like that idea! It would be at least a good idea to try it out I think.
I think it is one of the simpler ideas. I think most others start to re-write the drawing/positioning (which I don't have many ideas for at this time). This will just divide the set of edges to visible and not visible.
I think it is one of the simpler ideas.
Indeed, but it might be a very nice improvement.
Right now we have 2 states for nodes:
An exercise that is registered in the config.json but not implemented yet, shows as grey (implemented). It would be great if we could see the difference in the tree. It could show in yellow for example, because it is planned, but not implemented yet.
There are several ideas on how to check/indicate if an exercise is not yet implemented:
todo: true
in config.jsonuuid: null
style based on the uuid
being null
would be simpler than adding a new flag or checking the exercise folders, since this graph is build from the config.json and the schema doesn't have a todo flag in it yet.
I am not sure if this affects any of @ErikSchierboom's other dashboard tooling though.
As far as I can tell, we've now used null
for this right?
Yes, the exercise node now changes representation when the uuid is null.
I'm opening this issue to explore possible next steps for refining/revising/expanding on the exercise graph. Incidentally, I may interchangeably use the terms graph, tree, DAG -- I mean to refer to this graph so the term doesn't really matter to me.
As such, the current state of the graph is:
config.json
present in each language's folder in theexercism/v3
repo.The result:
Next steps
Representing a more complete graph
During the group call, some ideas were floated about how this graph may be expanded upon. Ideas were focused around altering the format of the
config.json
file to allow for incomplete or unimplemented exercises to be represented in the graph.Exercises in different states can be easily represented with different shapes / colors.
I have a hesitation when it comes to expanding this feature is that it may promote the idea that the tree must be completed before exercises, which I believe to be putting the cart before the horse with my experience with the elixir track so far. I have tried to conceptualize the complete track (see: graph - mar 20) which I think hindered attempts to just start writing exercises -- which was by far the best method to flush out concepts more fully and create a more natural progression.
Simplifying or Untangling the Graph
The graph is noisy in its current state and I think there are at least two reasons:
Simplifying the graph
I think this is easily accomplished by only showing the exercises's closest dependencies (which then represent the unlock progression) then displaying the dependencies as an additional layer which can be hidden or visible.
An example of this:![Screenshot from 2020-06-28 17-10-32](https://user-images.githubusercontent.com/8953691/85960642-50197280-b962-11ea-8394-fc23c6cdaa10.png)
Untangling the graph
I think there is likely only so much untangling that can be done on a graph which may have multiple source nodes, a vertical [or horizontal] orientation (to imply an progression). But one question I have is if there are any suggestions on how this graph may be displayed more compactly?
It could be compacted a lot if there was no text present, but then I think it loses a lot of value as a reference. I haven't had much success finding similar graphs and am not really a designer so some input would be really nice here.
This is what Jetbrains Academy is doing with its java curriculum map:
Table View:![Screenshot from 2020-06-28 17-17-37](https://user-images.githubusercontent.com/8953691/85960804-8f948e80-b963-11ea-8539-6c8ab2bc56a0.png)
Tree View:![Screenshot from 2020-06-28 17-18-09](https://user-images.githubusercontent.com/8953691/85960811-96bb9c80-b963-11ea-912f-78645d67fa83.png)
Increasing Usability
So what do you think are the next steps for this graph?