johannesjo / super-productivity

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, Gitlab, GitHub and Open Project.
http://super-productivity.com
MIT License
8.65k stars 753 forks source link

Project folders / group projects #516

Open papernoise opened 3 years ago

papernoise commented 3 years ago

Your Environment

Imagined Behavior

premable: I always work on a lot of projects at the same time. I'm sure it's the same with many people. The list in the sidebar can get pretty long and one does have to scroll around quite a bit to find things. Also there's projects on hold, or things that need to be archived and removed from SP but which are being kept for some reason.

Possible solution: Something that could make this whole thing much more usable could be having folders to group things into. So I would for eg. group all the idle projects into a folder, close it and access it only when a project comes back to life. These folders could work just like the parent "Project" folder, with a little arrow on the side to expand or collapse it. What do you think?

johannesjo commented 3 years ago

Thank you very much for your suggestion! If more people need this I am not against this feature (please use the thumbs up to let me know), but I probably won't implement it anytime soon myself, as there is already more to do for myself then I can handle and because this would add another layer of complexity.

mkpaz commented 3 years ago

My 5 cents about concept.

It's much harder to implement than it looks on the first sight. You need to implement UI to manage groups (CRUD), drag&drop between groups, counters, navigation, database schema etc. Instead of this I'd suggested to implement "favorite (or starred) projects". So, when you want to focus on a group of projects, you just mark them as favorites. Trello has a similar feature:

image

Given that project list can be long we first need to find a project we want to mark as favorite. The best way to do that would be adding search field into "Manage Projects" page.

image

Pros:

danimesq commented 3 years ago

Watching this issue.

Productivity will boost even more through better organization.

github-actions[bot] commented 2 years ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!

JoseOlin commented 2 years ago

Still relevant to me :)

github-actions[bot] commented 2 years ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!

JoseOlin commented 2 years ago

Useful, but not priority, I think.

I have found some workarounds for this. For example, I name all the projects of the same group with the same prefix, for example OR | Project 1 OR | Project 2 P | Project 1 P | Project 2 P | Project 3

And I assign the same color to all projects in the same group. Favorite projects are at the top of the list, followed by all others in order of priority.

Perhaps a simpler improvement would be to offer a predefined set of colors when creating a project, or remember the last 5 colors used, since I have to query the RGB values every time I create a new project.

github-actions[bot] commented 1 year ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!

JoseOlin commented 1 year ago

.

JoseOlin commented 1 year ago

I think this is still an important funcionality to keep our tasks more organized.

github-actions[bot] commented 1 year ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!

danimesq commented 1 year ago

Please comment, if this still relevant!

Not only still relevant but, also, one of the most relevant issues out here.

halloichbingunnar commented 1 year ago

It would be really great to group projects, also for a joint worklog or anything similar. For me it would be super helpful to see how much time you spend on different projects for the same client/employer in one place.

TheMcnafaha commented 11 months ago

I'm interested in adding this feature, but I think my skills would limit me to only adding a UI facade of folders.

If anyone has used Anki here, you'd know that to group projects you add a "::" (eg parent :: child). More or less what @JoseOlin mentioned here.

The solution I have in mind would mean nothing new is passed to a DB (other than the name change) as the parent folder would just be a way of hiding all the children unless the parent folder is clicked and vice versa.

This would also mean that the parent folder can't be a previously used project and that its name would need to be unique among other parent folders (in the case of two parent folders are named the same, I could always add a number or ' to the most recent one instead of just giving out an error).

If this sounds like a good solution I'm down for providing a crudely drawn state diagram or other similar diagrams.

JoseOlin commented 11 months ago

I'm interested in adding this feature, but I think my skills would limit me to only adding a UI facade of folders.

If anyone has used Anki here, you'd know that to group projects you add a "::" (eg parent :: child). More or less what @JoseOlin mentioned here.

The solution I have in mind would mean nothing new is passed to a DB (other than the name change) as the parent folder would just be a way of hiding all the children unless the parent folder is clicked and vice versa.

This would also mean that the parent folder can't be a previously used project and that its name would need to be unique among other parent folders (in the case of two parent folders are named the same, I could always add a number or ' to the most recent one instead of just giving out an error).

If this sounds like a good solution I'm down for providing a crudely drawn state diagram or other similar diagrams.

I think it would be great. It would help a lot to order our projects, especially if the collapsed state of the different projects can be saved.

TheMcnafaha commented 11 months ago

Alright. I'll work on building a basic prototype that will have this 2 features:

I should also probably mention that I have never worked on an Electron app before or used Angular. As such, I welcome all forms of criticism or starter guides. I have a pretty thick skin. My only wish is that on top of feedback I also get a link to further understand my mistakes (docs, blog posts, or even source code are all appreciated).

I'm a patient lad; I don't mind taking the next 4-8 months to get this feature done right.

johannesjo commented 11 months ago

@TheMcnafaha Thank you very much for the offer!! I am curious to see what you cook up. As a general remark: I feel the app is a bit bloated with features as is, so Ideally any new feature we add (such as this) shouldn't get in the way of the most simple use case or add much clutter to the UI.

There is a guide in the readme here how to run the project. I think you don't really need to worry about electron. Developing just in the browser should cover this feature very well. Please let me know if you have any specific questions!

tempookian commented 8 months ago

@johannesjo First of all I should mention that the tool is great as is :D So thank you so much for maintaining this awesome project!

In order to avoid feature bloating, my recommendation is to add sections (could be implemented by dividers for example) to the left-hand-side menu with (maybe) collapse+expand feature. This way, at least one could see and distinguish the different sub-projects visually. I believe this not interfere with the simple use case.

TheMcnafaha commented 8 months ago

@johannesjo First of all I should mention that the tool is great as is :D So thank you so much for maintaining this awesome project!

In order to avoid feature bloating, my recommendation is to add sections (could be implemented by dividers for example) to the left-hand-side menu with (maybe) collapse+expand feature. This way, at least one could see and distinguish the different sub-projects visually. I believe this not interfere with the simple use case.

My current go-to is to just imitate the behavior of current projects folder. Down to the used icons and all.

johannesjo commented 7 months ago

Hey @TheMcnafaha sorry for the late feedback! I was out of town for several weeks.

Ideally I would love to see projects and groups on the same level, e.g. like so

Project
Project Folder
  Project
  Project
Project
Project

This way nobody is forced to deal with groups. What do you think?

I also agree that we probably want to keep the feature as simple as possible as a first step and to just make project folders a visual thing.

papernoise commented 7 months ago

I like this solution. Would the project folders be just like normal projects, just that they have subprojects, or more like just folders?

johannesjo commented 7 months ago

Would the project folders be just like normal projects, just that they have subprojects, or more like just folders?

In my head they are just folders for project. Imho that's easier to understand and also much easier to handle model wise.

RWSlot commented 6 months ago

Hey @TheMcnafaha sorry for the late feedback! I was out of town for several weeks.

Ideally I would love to see projects and groups on the same level, e.g. like so

Project
Project Folder
  Project
  Project
Project
Project

This way nobody is forced to deal with groups. What do you think?

I also agree that we probably want to keep the feature as simple as possible as a first step and to just make project folders a visual thing.

Microsoft ToDo has this and I find it very helpful to move tasks from certain "states" (waiting for, someday/maybe,) or contexts (desk, car, outside.) Tasks could exist in two groups at once (project fix the barn and waiting for.)

image

danimesq commented 6 months ago

Hope that at least in Aug 28 2024 (4 years later) this gets finally implemented 😬

github-actions[bot] commented 2 months ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!

papernoise commented 2 months ago

I'd just like to add my voice here to say that this is a feature I'd love to see implemented one day!