Kanban for Tasks

Hi,

first, I would like to say I realy like Joplin for taking and organizing my notes. But I would also like to organize my tasks in an Kanban style.

An lightwight implementaion would be great. For example, an easy workflow with a few columns would be enough (Todo, Doing, Done).

Something like trello in Joplin. I also found this https://github.com/anydown/kanbandown which looks very interesting.

What do you think about this idea?

Regards
hupp

10 Likes

I think this is a neat idea @hupp , and I would be interested as well.

Gitlab has a nice way of doing this based on tags. In Gitlab, each Kanban column comes from a tag. You can pick which tags become columns and arrange the columns in whatever order you want. Moving a “card” (aka a single Joplin note) from one column adds and removes the appropriate tags.

Not sure if this concept is too far out of the scope of Joplin, but a tag/column approach might make it more applicable outside of just Kanban.

Hello @hupp, and welcome to the forum.

Bases on a tip by @victorkane in this topic I have applied a simple Kanban style workflow in Joplin like this

  • Tasks are just notes. One note is one task.
  • Views > Show note counts is enabled
  • My board is simply a notebook at the “top level”
  • Kanban columns are just sub notebooks

Example:

My Kanban board (folder) has the following sub folders:

  • 1 Backlog
  • 2 In progress
  • 3 Waiting for others
  • 4 Done
  • 5 Blocked

The workflow is then simply to move my taskes (notes) between folders as work progress.

6 Likes

Hi @eagle,

thanks for this tipp. This looks like a good workaround to get a kanban board. At least you are able to work like kanban, but the board view (overview) is missing. I will try it!

I have a few twists and turns added on after using it for several months (never went back to trello since I do miss the kanban board, but it's just as easy to move todos between columns (I use todos instead of notes, and also the github markdown - [x] for sets of sub-tasks within a todo).

Couple of add-ons :slight_smile:

  1. Use the mermaid plugin for a gantt chart (pictorial + joplin links, can't get the mermaid graphic links to work) on the main kanban parent in a regular note which can reference all the todos and the history of production. Great overview of all tasks. Requires discipline to keep up-to-date
  2. The Gantt Chart replaced a complementary outline of hierarchy of all todos in the project, but both could be cool, it's hard to keep both updated.
  3. Some todos are epics which just reference (joplin markdown links) the tasks involved.

So I'm just loving Joplin, not just for this, but also for all the ways I use it, and really admire the hard work being put into the project as we all work and hope (and struggle) for better times.

tags are cool, I used them in my Kanban setup (using Joplin tags). Just that it’s sometimes hard to keep up in a disciplined way

@hupp, @victorkane ‘s post got me into budgeting with Joplin. It’s not the most efficient way to do it but is functional and effective, so I’ll stick with it (despite falling off a bit the last couple of weeks).

Yes, agreed, that’s what I like about the gitlab way. The tags become visual columns, and as you move cards from one column to the next, the tags are automatically swapped. Hard to describe in words, but in the screenshot below, when they move the card, it is removing the tag frontend and adding the tag staging automatically.

3 Likes

Just to let you know I've added a GSoC project idea about this here: joplin/ideas.md at dev · laurent22/joplin · GitHub I think it's a good idea and perhaps someone will be interested in developing this.

7 Likes

:crossed_fingers: also as a reminder there are more notes and discussion on the idea here: Kanban / Board View · Issue #3567 · laurent22/joplin · GitHub

2 Likes

Hi @uxamanda!

I'm currently writing a proposal on a kanban plugin for GSoC. I just want to say thanks for putting so much work into this idea and the design you made, it really made writing the proposal a lot easier! :grinning_face_with_smiling_eyes:

I've mostly adopted the yaml config you posted on github with some extensions (I can send you my proposal draft, if you're interested) and while discussing it with Laurent we agreed that there should a GUI for creating a board and generating these settings. I'd like to ask your opinion on this, since I'm really not a designer. Though of course if you have any suggestions on the rest of the proposal I'd be glad to hear it! Here's what I came up with:

And here's my take on the yaml config, which this UI is supposed to represent:

# Only notes which pass these filters will be shown on the board
filters:
  tag: 'Task'
  # Same, just allows multiple tags
  tags: 
    - 'Tasks'
  # For Todo type notes
  completed: false
  # Can be a path
  subNotebook: 'notebook/nested notebook'
columns: 
    # Backlog columns contain all notes which passed the filters,
    # but don't fit into any other column. 
  - backlog: true
    # Still needs to have a filter
    tag: backlog
    name: Backlog
    # Here each column can use the same properties as the filters
  - tag: 'to-research'
    name: Researching
  - tag: 'writing'
    name: Writing
  - tag: 'ready'
    name: Ready for review
  - completed: true
    name: Done
4 Likes

Awesome, would love to see it.


For the design – I think this will take some more planning, but I think it would be much better to take an "inline" approach. For example – the board title should probably be edited in place, like a normal Note/Todo. For columns, imagine a board is created by default with 2 columns - Backlog and Done. The user could click a gear icon (or pencil or something) and, in a popup, change to a tag or switch it to a "special" Backlog or Done column. Same thing for the Filters – that could be an icon on the board that let you filter the notes. By default it could be all notes in the notebook you added the board to.

Then, an advanced user can just switch to the YAML view if they want more control.

Let me know what you think. I am happy to sketch detailed designs of what I mean if you move forward with working on this.


The yaml looks good, I think one main difference if you are using the order of the columns in the list to define their placement instead of explicit numbers, that seems better than mine.

I see in the filters you allow for completed and subNotebook. I think that is great, although since it is a path, shouldn't that be "notebook"? or even "notebookPath"?

This might be expanding scope, but that made me realize some people would probably like to add a search as their filter. Maybe the work here: joplin-plugin-note-overview/README.md at master · JackGruber/joplin-plugin-note-overview · GitHub could help?

I'm guessing in the backlog, the "tag: backlog" is optional? Seems like that might get confusing, might be better to leave that line out completely. If the user doesn't want the "special" backlog, they can create a different normal column.

For the completed column, it looks like you went with the idea of a special column that marks a todo as done. That works well for my use case, but what will happen for "Notes"? In reality I think the best bet for a person using Notes could create a new column with tag "Done", so maybe that could be titled "todoCompleted" or something to signal that adding it to that column with switch to a todo and mark as done? Not sure the best solution for that.


All in all, good luck! I really hope that this gets made :slight_smile:

4 Likes

Thanks for the feedback!

Great, I'll send you my draft right away! I'd really appreciate you giving your thoughts on it.

I like your inline approach! It fits Joplin's existing UI so much better. I'll try to adapt it for the proposal and think about the details on how exactly it could work.

Right, notebookPath is more clear!

Hm, I don't know how difficult that would be. I'll look into it, and see if it fits into the schedule.

Well, the problem is that I just wasn't sure what should happen when a note is dropped into the backlog column. What tags should I remove or which notebook it should be moved to. I thought the simplest way would be to have the user define this explicitly, and then that tag/notebook is also applied to all notes which are assigned to backlog automatically. Though now that I think about it, it may end up being confusing, so I guess I'll have to come up with a smarter way of handling it.

Hm, well I didn't think that through. Maybe columns with only completed: true shouldn't even be allowed, and providing either a tag or a notebookPath should be required. But then todos would get a redundant tag. Maybe a completedTag could be introduced, which defines a tag, that is applied to all "Notes" which are in this column, but not to todos.

In my mind, this column is any note/todo that matches the filter and does not have any column tags so if you had a board with backlog, tag:doing, tag: review, then if a note went from doing to backlog, you'd remove (only) the doing tag. Ideally that would make it a catchall bucket so if you made a new note that matched the filter it would appear automatically. There might be an edge case I haven't considered though!

I hadn't been thinking about moving notes between notebooks when you move columns. That is an interesting idea.

That seems like it could work. Then, if someone doesn't like that tag, they can choose a "normal" column instead and define their own "done" tag.

1 Like

Hi, nice that this is 'picked-up' again!

In my opinion: Kanban would best be:

  • simple
  • colors
  • minimum 3 and maximum 5 columns:
    ** (Backlog)
    ** To Do
    ** In Progress
    ** Done
    ** (Archive)

Like i already mentioned somewhere up here: https://kanboard.org/ is my favorite. :wink:

Ideal would be that it is a kind of seperated function inside Joplin like 'New Note', 'New To do' and then a third 'New Kanban'. :slight_smile:
But that's too much extra work i think.

Now i am using really simple Kanban way in Joplin like this:

  • KANBAN (notebook)
    ** Backlog (sub notebook)
    ** ToDo (sub notebook)
    ** Progress (sub notebook)
    ** Done (sub notebook)
    ** Archive (sub notebook)

And i move only notes inside of them that have to do with the Kanban tasks.

I prefer another way to achieve this goal, through joplin's attachment resources

Specifically

  1. Create a web board
  2. Support saving as .kanbandown.png, and carry some hidden custom information
  3. Support reading pictures of .kanbandown.png and reading hidden custom information
  4. Implement joplin plugin to combine Kanban and webview

But since I use GitHub Project as the board, I don’t need this feature

There are several VSCode kanban plugins. One I'm using I really like: GitHub - basementuniverse/vscode-kanbn: A VSCode extension for kanbn It could serve as a point of reference: not buggy (used it quite a bit), markdown based, I love the functionality.

That's neat - looks like the markdown they use follows these formats for:

board:

task (with front matter)

It looks interesting! I think most of its features are covered by my proposal, but let me know if I missed something important!

I think perhaps the way they display columns in the board file could be adopted instead of my proposed table, at least as an extra option. What do you think?

I guess it's best to get functional even if simple UI and refine later.