# Projects management plugin

**URL:** https://meta.discourse.org/t/projects-management-plugin/143712
**Category:** Plugin
**Tags:** broken
**Created:** [March 9, 2020, 4:53pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712 "2020-03-09T16:53:05Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [March 9, 2020, 4:53pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/1 "2020-03-09T16:53:05Z")

</div>

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:

[![](https://global.discourse-cdn.com/meta/original/3X/9/0/90e41bac3b9bfe5fe07954c9e3eec6ffdeebb41d.jpeg "discourse projects management plugin - What can you do with it?") ](https://www.youtube.com/watch?v=qWR-YZ_khjw)

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](https://meta.discourse.org/t/projects-management-plugin/143712/10)
- task status: done / not done yet
- BUG: call setup projects\_task on categoryid change instead of composer init

## Installation

Follow [Install a Plugin](https://meta.discourse.org/t/install-a-plugin/19157)  
how-to from the official Discourse Meta, using `git clone https://github.com/spirobel/projects.git`  
as the plugin command.

## Poem

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

```

[code on github](https://github.com/spirobel/projects)

---

<div class="post-metadata">

### Author: ![eextra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eextra/32/170266_2.png) [@eextra](https://meta.discourse.org/u/eextra)
#### Post date: [March 9, 2020, 9:45pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/2 "2020-03-09T21:45:59Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [March 10, 2020, 8:01am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/3 "2020-03-10T08:01:32Z")

</div>

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

---

<div class="post-metadata">

### Author: ![eextra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eextra/32/170266_2.png) [@eextra](https://meta.discourse.org/u/eextra)
#### Post date: [March 10, 2020, 12:09pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/4 "2020-03-10T12:09:42Z")

</div>

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](https://global.discourse-cdn.com/meta/original/3X/0/6/06aa0c59c5c2062f76e79c0da66d65bbcdbca5d5.png)

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [March 10, 2020, 1:00pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/5 "2020-03-10T13:00:26Z")

</div>

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:

> [@Rails plugins vs discourse plugins - what is the difference?](https://meta.discourse.org/t/rails-plugins-vs-discourse-plugins-what-is-the-difference/127109):
>
> I want to make a plugin that needs its own tables. So its a good idea to have migration and model generators, because manually copying them from the main app dir will lead to errors and is just not very convenient. So I started making my own generators. I started with the migration generator: [https://github.com/spirobel/discourse/commit/3ba8190286b5c40eeace1b58238cbf5075db597e](https://github.com/spirobel/discourse/commit/3ba8190286b5c40eeace1b58238cbf5075db597e) I could move on now and do the same for models and controllers. But now I started to read this [Getting Started with En…](https://guides.rubyonrails.org/engines.html)

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](https://github.com/OpenSourceMalaria/OSM_To_Do_List/issues/581#issuecomment-596998459)  
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](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:

---

<div class="post-metadata">

### Author: ![eextra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eextra/32/170266_2.png) [@eextra](https://meta.discourse.org/u/eextra)
#### Post date: [March 20, 2020, 12:43pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/6 "2020-03-20T12:43:49Z")

</div>

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

Broken

---

<div class="post-metadata">

### Author: ![Bank\_Live](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bank_live/32/75893_2.png) [@Bank\_Live](https://meta.discourse.org/u/Bank_Live)
#### Post date: [March 20, 2020, 3:38pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/7 "2020-03-20T15:38:12Z")

</div>

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

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [March 23, 2020, 11:22am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/8 "2020-03-23T11:22:48Z")

</div>

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

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [March 23, 2020, 11:23am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/9 "2020-03-23T11:23:33Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Bank\_Live](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bank_live/32/75893_2.png) [@Bank\_Live](https://meta.discourse.org/u/Bank_Live)
#### Post date: [March 27, 2020, 11:44am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/10 "2020-03-27T11:44:15Z")

</div>

Ok I mean same this.

 ![ภาพ](https://global.discourse-cdn.com/meta/original/3X/3/c/3c9c87f8fb7dc28b28fe907b98c8eaaf18cec560.png)

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [March 28, 2020, 3:24am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/11 "2020-03-28T03:24:27Z")

</div>

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:

---

<div class="post-metadata">

### Author: ![Bank\_Live](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bank_live/32/75893_2.png) [@Bank\_Live](https://meta.discourse.org/u/Bank_Live)
#### Post date: [March 28, 2020, 9:47am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/12 "2020-03-28T09:47:59Z")

</div>

This style will make the page look more useable.

 ![image](https://global.discourse-cdn.com/meta/original/3X/f/b/fbe72bfcc29f17a6b11539fdc7d56992cf1e0334.jpeg)

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

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [May 4, 2020, 8:15pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/13 "2020-05-04T20:15:06Z")

</div>

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

---

<div class="post-metadata">

### Author: ![eextra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eextra/32/170266_2.png) [@eextra](https://meta.discourse.org/u/eextra)
#### Post date: [May 12, 2020, 4:55pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/14 "2020-05-12T16:55:18Z")

</div>

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"]}

```

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [May 12, 2020, 5:01pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/15 "2020-05-12T17:01:45Z")

</div>

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: [https://cidian.social/c/build-house/5](https://cidian.social/c/build-house/5)

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [May 12, 2020, 5:59pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/16 "2020-05-12T17:59:41Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Chris\_Williams](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chris_williams/32/213737_2.png) [@Chris\_Williams](https://meta.discourse.org/u/Chris_Williams)
#### Post date: [March 19, 2021, 12:17am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/17 "2021-03-19T00:17:11Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [March 19, 2021, 3:24am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/18 "2021-03-19T03:24:34Z")

</div>

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:

---

<div class="post-metadata">

### Author: ![rsmithlal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rsmithlal/32/220716_2.png) [@rsmithlal](https://meta.discourse.org/u/rsmithlal)
#### Post date: [June 2, 2021, 4:34pm UTC](https://meta.discourse.org/t/projects-management-plugin/143712/19 "2021-06-02T16:34:54Z")

</div>

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!

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [October 30, 2021, 7:33am UTC](https://meta.discourse.org/t/projects-management-plugin/143712/20 "2021-10-30T07:33:33Z")

</div>

I am currently working on a rewrite of my [basic editor plugin](https://meta.discourse.org/t/discourse-basic-editor-beginner-friendly-composer/159431) 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:

[Next page](https://meta.discourse.org/t/projects-management-plugin/143712.md?page=2)
