I have a list of tasks that can be dependent on each other, e.g. task #2 cannot be begun until task #1 has completed.
In schematics, it might look like this
Id | Dependency ----+----------- #1 | - #2 | #1 // #2 cannot begin before #1 is completed #3 | - #4 | #2, #3 // #4 cannot begin before both #2 and #3 are completed #5 | #1, #3 // #5 cannot begin before both #1 and #3 are completed
One task can depend on several other tasks, and many tasks can depend on the same task. There can be no cyclic dependencies.
I need to create a user interface where the user can add tasks to her list and configure the dependencies between tasks herself.
My first thought was to have a table like so:
But this is not very easy to look at for a not-so-technical user, and it does not visualize the relations between the tasks very well.
My next thought was to have a sort of hierarchical drag and drop list
but I can't figure out how to represent one task being dependent on several tasks (e.g. if Task 4 depends on both Task 2 and Task 3 but these two are independent of each other). Also, if all tasks are dependent on the previous task, this would result in a list that indents quite a long way in.
I also thought about visualizing it as a Gantt chart, but this is just as technical as the table solution.
Does anyone have any ideas on how to solve this task in a user friendly way?