MakerSpaceLeiden / aggregator

MQTT aggregator
Apache License 2.0
0 stars 0 forks source link

"chores" feature #7

Open stefanomasini opened 5 years ago

stefanomasini commented 5 years ago

This feature aims to help automate the coordination of collective efforts, such as:

I would do it this way: the CRM acts as a simple facade to the DB, while the aggregator takes care of sending and timing messages. I would add a flag to the user records to mark the person (is 1 enough, or should there be more than 1 to help?) that volunteered for the current cycle, then the flag is reset. Or, better than a flag, a timestamp, so that we can see who did it last n times, and who never did it yet.

The aggregator wakes up 1 or 2 days before the deadline and checks if any user is already marked on duty. If not, sends a direct message (bot or email, according to preferences) to everyone with a link to the CRM if via email, or the ability to interact if via BOT. Users can choose to volunteer or ignore the message. If more than the necessary volunteered have already signed up, the following ones get a "thank you, not needed anymore" note.

The aggregator keeps checking on signups at regular intervals (hourly?) and at some pre-defined check points in time (1 day before, the night before, etc.) if still not enough volunteers signed up, keeps asking.

When enough users signed up, send a confirmation message to everyone that X, Y and Z heroically signed up for duty, to give them credit and hold them accountable.

If needed, send X Y and Z a reminder close to the deadline that duty is coming, not to forget.

Not sure about mailing deelnemers@... done this way we already have enough personal messaging. For the record it might be enough to mail noc@?

stefanomasini commented 5 years ago

Working on it. Partial implementation already online.