dwyl / dwyl/chat

Protect People's "Focus Time" from Distracting Notifications Automatically based current Task/Timer

Open
#35 1 comment 3 reactions 0 assignees View on GitHub
enhancement feature-request help wanted
Dominant language
Elixir
Stars
65
Forks
8
PR merge metrics
No merged PRs in 30d

Description

The _biggest_ issue I _personally_ have with chat1 clients/apps is that they are an _interruption_/_distraction_ "machine" that give people "_instant gratification_" at the expense of long-term meaningful work. While _some_ chat clients allow you to **update** your "**status**" to inform other people that you are "***busy***" this is **not done _automatically_** and is a "_crude_" mechanism for communicating.

Chat should Automatically Sync with Active Timer/Task and Mute Notifications to Avoid Distracting the Person Doing "Deep Work".

## Story

> As a person using chat
> I want my contacts to be **automatically informed** that I am **currently working** on a **task**
> And to **_not_ expect** an **immediate reply** and **avoid interrupting** my "_Deep Work_".

I want the _permissions_ determining who can/cannot see the _exact_ title/description of my task to be configurable.

## Task/Todo

+ [ ] Allow people using Chat fine-grained rules on when they should be notified of new messages:
+ [ ] Don't notify me when I'm working on a task that requires focus
+ [ ] Accumulate notifications for when I finish my task (_stop the timer_) to avoid distracting me.
+ [ ] Notify me _immediately_ if the message is from `this` list of people
+ [ ] Notify me _immediately_ if the issue is marked as `Priority-1` or they mark the message as "_Urgent_".
+ [ ] Give each person in the team a "Quota" of "Mark-as-Urgent" privileges or a "Three Strikes" policy so people do not _abuse_ the power to interrupt others. (_please create a separate issue for this_)
+ [ ] use the "Time" (_RealTime_) API to "_listen_" to what task the person is working on and display both the name of the task and the estimated remaining time to colleagues who the person has granted "view current task I'm working on" access to.

> Yes, we _could_ just use the `Slack` ["Presence and Status" API](https://api.slack.com/docs/presence-and-status) and update the person's status in `Slack` when ever they start/stop a task/timer but
**A**. we would _quickly_ reach API Rate-limits https://api.slack.com/docs/rate-limits when our App is even _modestly_ successful.
![image](https://cloud.githubusercontent.com/assets/194400/26217927/190f3978-3c01-11e7-8726-6790aba22031.png)

**B** we have _no control_ over the UX in Slack so we cannot make the status more prominent or display that the person _estimated_ that a task would take 25mins and they have 5 mins left on the clock.

1**Chat clients** refer to "real-time" or "instant" messaging applications.
I have not found a chat client that integrates _seamlessly_ with my Todo List or Task/Time Tracker and _seamlessly/automatically_ informs people when I am unavailable.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.