Projects management plugin

This is a plugin to manage task dependencies with discourse.
It basically turns a category into a project and the topics in this category into tasks of this project.
You can define dependencies between tasks. Essentially which tasks need to finish before other tasks can begin. You can also define beginning dates, end dates and the task duration. It will automatically set the beginning and end dates of the dependent tasks if you change them somewhere.
It will also display earliest beginning date and latest end date in the category header.
The total project duration will also be computed. You can also lock tasks so that the automatic computation of beginning and end dates does not affect them.
This youtube video explains how to use it:

TODO:

  • show messages on mobile / narrow screens
  • add a topic list view to show tasks in topological order (+indent the dependers a little)
  • use message bus to notify other users of changes
  • add revision capability for project tasks
  • add support for subprojects (one subproject will be a task in one project but also its own category)
  • make the UI more beautiful (links instead of buttons etc)
  • write tests
  • add calender view @Bank_Live proposed in Projects management plugin - #10 by Bank_Live
  • task status: done / not done yet
  • BUG: call setup projects_task on categoryid change instead of composer init

Installation

Follow Install a Plugin
how-to from the official Discourse Meta, using git clone https://github.com/spirobel/projects.git
as the plugin command.

Poem

I depend on you.
You depend on me.
Who is the depender?
And who is the dependee?

code on github

30 Likes

Good idea, how can I add my own field, custom field (like date for event plugin etc) by creating a new task as a new topic?

3 Likes

I am not sure I understand your question right, what exactly do you want to do?

I want to add own field like the title and tags, so that it can later be easily accessed in json form and can be easily manipulated/calculated , for searching etc

Scree5

2 Likes

thats actually not a trival problem. On the one hand you have to handle a lot of cases in the frontend. I still havent handled all for this plugin. As you can see revision capability is still on the todo list. Then there also is the issue of saving the data and if its a wise idea to use the pluginstore or not. The topic is touched on in this thread:

I also wrote this plugin because I wanted to figure out if real tables can actually bring a big benefit. This whole dependency logic and the error checking in the backend with a rollback if its just a “dry” shot would not be possible using only the plugin store. I think its a trade off. For some use cases the pluginstore is enough. But I think to do more complex stuff there is no way around “real” tables. I also want to write a blogpost about this after i explored this a bit more. If we look at this in a more abstract way, what we want to do is this: We want to use discourse to collectively edit structured data. At the moment its really hard to “just add” a custom field to a post or topic, but I think it can be made easier. Another thing that I want to do is to rip out the composer editor completely and use the topic just for data entry. I dont know what will come of it, but here is some brainstorming:Why not create an OPEN SOURCE platform dedicated to open source drug discovery ? · Issue #581 · OpenSourceMalaria/OSM_To_Do_List · GitHub
Maybe these two types of plugins can also be combined like i explain in this github issue. So you enter data in topics that have no normal d-editor, but a specialized data entry editor and then you reference this data in topics that still have the d-editor. These other topics might also have some extra fields, like in this projects management plugin.

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/templates/components/composer-editor.hbs

Take all off this with a grain of salt, as I havent had the time to properly try this out. I will create a write up about this when I am back from vacation :smiley:

5 Likes

Unfortunately, but the plugin doesn’t want to get boostap now.

Broken

1 Like

It’s great Hope to add a chart for each period in the future

can you please post the error message so I can help you? :slightly_smiling_face:
Also: this plugin uses its on tables, so you need to rerun migrations after installing. should be somthing like rake db:migrate please check the install guide for further details

1 Like

ok can you maybe draw a picture, what exactly you would like to have? I will think about it. :smiley:

1 Like

Ok I mean same this.

1 Like

Okay i added it to the TODO list it makes sense. I am on holiday now. I will take a look at it after I get back :smiley:

This style will make the page look more useable.

Thank you for creating these things. I will definitely wait to use

1 Like

there was indeed a problem with asset compilation.
https://github.com/spirobel/projects/issues/1
I fixed it now and installed it on my server: Build House - cidian.social
I want to use this plugin to plan my projects, so I will continue to improve it.

2 Likes

Still problem fail to boostrap:

FAILED
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/12/main failed with return #<Process::Status: pid 41 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cmd"=>["chown -R root /var/lib/postgresql/12/main", "[ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0", "chown -R postgres:postgres /shared/postgres_data", "chown -R postgres:postgres /var/run/postgresql"]}
1 Like

Hello, thanks for trying again! On which version are you? The last version I tried it with is: 2.5.0.beta4 Its running on a testserver over here: Build House - cidian.social

ok it seems like it is this issue:
https://meta.discourse.org/t/clean-install-upgrade-fails-because-of-pg12/151212

Hi, new Discourse user here on community artistic platform. I am looking for a potential project management plugin for small projects within our Discourse community. Is this plugin still in use?

1 Like

this was the first plugin I wrote to learn how to write discourse plugins. Its currently in an unfinished state. I haven’t decided in which direction I want to take this plugin, but I definitely want to continue working on it and repurpose the code I wrote. I would be glad if you can tell me about your use case. Also possibly via private message if thats more comfortable for you! :smiley:

5 Likes

Thanks for your great work @spirobel!

What is the current status of this plugin? I’d love to use it for my instance, but I’m wary of installing a plugin that is currently in an unknown state of development.

Thank you!

3 Likes

I am currently working on a rewrite of my basic editor plugin afterwards I might get back to this one. But I would have to rethink who would be the target group for this plugin. I would be glad to hear about what you would like to use it for. Same for anyone reading this: just write down how you would like to use discourse to manage your projects. Maybe we can brainstorm together :slight_smile: :+1:

2 Likes