nuttyartist / plume-public

Write beautifully. Effortlessly. A note-taking app written in Qt C++ and QML.
https://www.get-plume.com
46 stars 0 forks source link

Feature Request: Subtasks for the Kanban Board #6

Open MartinElsaesser opened 1 month ago

MartinElsaesser commented 1 month ago

You already had a great idea: add checkboxes to the items on a kanban board. I think they can be used better. In the following Issue I want to outline how.

What I propose is to use the checkboxes to organize subtasks. Instead of having a checkbox be there whenever you create a task, only show one, when the corresponding markdown for a checkbox is entered. This can then be used to manage subtasks within a main task.

The following pictures were created in gimp and aim to visualize my idea further:

Both subtasks unfinished image

First subtask finished image

How I imagine the code looking for the image example above, where the first task is finished and the second one is not. image

The images show a main task Tech bloggers and two sub task. When one of the subtask is finished, it can be ticked off. When the main task is finished it will be dragged to the finished section.

In my opinion, using checkboxes like this adds greater value to them. There is already a common way for marking a task as done: dragging it into a done swimlane. So freeing the checkboxes to manage subtasks is a great way to give users an easy tool to break down complex tasks into smaller ones.

P.S.: I am posting this issue, because I like your app and want it to be even better.

nuttyartist commented 1 month ago

Hey @MartinElsaesser! I really like the proposal!

But there are two things we need to consider:

  1. In your example, you organize tasks under a sub-header together below a bigger header. I don't think this is proper Markdown, and I would like Plume to still support Markdown syntax.
  2. I'm trying to think how this can be represented in the underlying Markdown of the text. I mean, this simple, 2 levels nesting scenario should work in your example.
### MVP
- [ ] Tech Bloggers
      - [ ] Cold email tech bloggers that might be interested in our product
      - [ ] Hip youngsters, that push our product on social media

This should render like something similar to what you did in your image, in my opinion (Notice: I think the first task - the parent task should be rendered in a nice pretty header like in your example, I'm just showing how a regular nested to-do items looks like in Plume). image

Notice, I'm nesting the tasks by indenting them. This is similar to the block editor in Plume:

Screen Shot 2024-07-28 at 7 29 11 AM

But what do we do when nesting level is higher? For example, how should we render this example:

### MVP
- [ ] Tech Bloggers
      - [ ] Cold email tech bloggers that might be interested in our product
             - [ ] Search for tech bloggers emails
             - [ ] Compose an email
             - [ ] Send it
      - [ ] Hip youngsters, that push our product on social media

I see two solutions:

  1. To render this the same way we do in Plume's editor: Screen Shot 2024-07-28 at 7 34 05 AM
  2. We simply ignore indentation level > 1 and simply render everything as one list

What do you think? Any thoughts/ideas on this?

MartinElsaesser commented 1 month ago
  1. In your example, you organize tasks under a sub-header together below a bigger header. I don't think this is proper Markdown, and I would like Plume to still support Markdown syntax.

I mostly copied from the already present examples and changed it around a little. And I agree, there is probably a more optimal syntax for nested tasks. I like the one you proposed quite a lot.

  1. To render this the same way we do in Plume's editor:

I think this solution will get confusing really quick. There is also the additional problem, that with each new nesting level, the card needs to get wider.

  1. We simply ignore indentation level > 1 and simply render everything as one list

I prefer this solution much more. It keeps things visually more organized and you won't run into the card needing to get wider and wider problem.

An additional thought: when you have two or more nested tasks, you could make it such that the whole task will be marked as completed, once all the nested tasks are completed.

nuttyartist commented 1 month ago

I think this solution will get confusing really quick. There is also the additional problem, that with each new nesting level, the card needs to get wider.

How come? The content gets longer, but it is wrapped by the fixed size of the card. The images I showed are just examples from the regular editor, so maybe that confused you?

I prefer this solution much more. It keeps things visually more organized and you won't run into the card needing to get wider and wider problem.

I'll have to think it through, whatever I come up with, I'll discuss it here with you.

An additional thought: when you have two or more nested tasks, you could make it such that the whole task will be marked as completed, once all the nested tasks are completed.

Yes, so in a sense you want that when there are more than one tasks to a Kanban card, to be able to check it off when all the sub-tasks are checked, right? That's a good idea. I'll also probably add a circular progress bar.