シンプルなCUIタスク管理アプリ「DoDo」

アプリ

pip一発でインストール!
ターミナルで使えるTODO管理アプリ「DoDo」のご紹介です。

DoDoとは

pythonで作られたターミナル上で使えるTODO管理アプリです。
pip installで簡単に導入でき、CUIで操作できるためプログラマ向けと言えます。

タスク管理はしたいけどターミナルから移動したくない、マウスは使いたくない、コマンド一発で使いたい…。
そんな方にオススメです!

DoDoはatmb4uさんによって開発されており、以下に公式の説明があります。

http://atmb4u.github.io/dodo/

 

使い方

インストールと初期化

DoDoはpipで一発インストールができます。
ここでパッケージ名はDoDoではなくdodopieであることに注意してください。

$ pip install dodopie

 

以下のようにして初期化をすることですぐに使用することができます。
DoDoは一箇所のディレクトリでしか使用できないため、ホームディレクトリに移動してから初期化するといいでしょう。

# ホームディレクトリに移動する
$ cd
$ dodo init
Successfully initialized DoDo

準備はこれで完了です。

 

タスクの追加と削除

タスクを一つ追加してみましょう。
dodo addによって新たにタスクを追加できます。

$ dodo add 'タスクを追加してみる'
ID	Status		Date(-t)	Owner(-u)		Description (-d)

1	[+]		50 seconds ago	(username)		タスクを追加してみる

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

新たにID[1]でタスクが追加されました。
もう一つ追加してみましょう。

$ dodo add 'タスクを削除する'
ID	Status		Date(-t)	Owner(-u)		Description (-d)

1	[+]		1 minute ago	(username)		タスクを追加してみる
2	[+]		46 seconds ago	(username)		タスクを削除する

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

 

次に、タスクを削除します。
削除にはdodo remove IDによって、IDを指定してコマンドを実行します。

$ dodo remove 1
ID	Status		Date(-t)	Owner(-u)		Description (-d)

2	[+]		2.2 minutes ago	(username)		タスクを削除する

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

removeを用いてID1のタスクを削除しました。

 

workonとfinish

タスクに着手したらworkonでハイライトしましょう。
例えばID2「タスクを削除する」に着手した場合は、以下のようにします。

$ dodo workon 2
ID	Status		Date(-t)	Owner(-u)		Description (-d)

2	[#]		5.45 minutes ago	(username)		タスクを削除する

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

タスクのステータスが[#]に変わりました。
記事のコードインサートだとわかりませんが、実際には色が変わって黄色にハイライトされます。

さらにこのタスクが完了したら、finishコマンドを使って終了がわかるようにします。

$ dodo finish 2
ID	Status		Date(-t)	Owner(-u)		Description (-d)

2	[.]		6.916666666666667 minutes ago	(username)		タスクを削除する

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

ステータスがさらに[.]変化しました。
実際にはID2が緑色にハイライトされ、わかりやすくなっています。

 

タスクの提案

複数人でまわすプロジェクトだと、人にタスクを割り当てることもありますよね。

そのためにdodo proposeというコマンドがあります。

以下のようにして、hogehogeさんにタスクを割り当てることができます。

$ dodo propose -u hogehoge -d 'タスク提案'
ID	Status		Date(-t)	Owner(-u)		Description (-d)

2	[.]		11.05 minutes ago	(username)		タスクを削除する
3	[+]		3 seconds ago	(hogehoge)		タスク提案

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

さらにこのタスクを、提案したusernameさんがやっぱり引き受けるよ、となった場合はacceptによってIDを指定します。

dodo accept 3
ID	Status		Date(-t)	Owner(-u)		Description (-d)

2	[.]		13.0 minutes ago	(username)		タスクを削除する
3	[*]		2.0 minutes ago	(username)		タスク提案

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

これによって、ID[3]のステータスが[*]になりました。
常にステータスについては下部に書いてありましたが、改めてまとめると以下のようになります。

  • [+]: proposed(提案中)
  • [-]: rejected(却下)
  • [*]: accepted(引き受け)
  • [#]: working(着手)

一人で使う場合はわざわざacceptする必要がありませんが、複数人の場合はありがたい機能です。
また、提案を却下する場合にはrejectを用います。

改めてタスクをhogehogeさんに割り当ててから、自分でrejectしてみましょう。

$ dodo propose -u hogehoge -d '頑張る'
ID	Status		Date(-t)	Owner(-u)		Description (-d)

2	[.]		18.366666666666667 minutes ago	(username)		タスクを削除する
3	[*]		7.366666666666666 minutes ago	(username)		タスク提案
4	[+]		22 seconds ago	(hogehoge)		頑張る

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

$ dodo reject 4
ID	Status		Date(-t)	Owner(-u)		Description (-d)

2	[.]		18.45 minutes ago	(username)		タスクを削除する
3	[+]		9.45 minutes ago	(username)		タスク提案
4	[-]		27 seconds ago	(username)		頑張る

Available Operations: c accept propose reject workon finish remove d flush
Available Options: -id -d(description) -u(user) -t(time) -f(file)
Status: + proposed - rejected * accepted # working . complete

ステータスが[-]になり、赤色でタスクがハイライトされます。
さらに、hogehogeさんが割り当てられていたタスクを自分(username)でリジェクトしたため、タスクのオーナーがusernameになっていますね。

 

良い点

DoDoはCUIで完結しているため、ターミナルで作業するエンジニアには非常にありがたいツールです。
また、ディレクトリごとにタスクを分けることができるため、複数人で複数プロジェクトを回す際にはディレクトリの移動だけでタスクリストを切り替えられるというメリットがあります。

さらにタスクの提案やリジェクトなど、実用的なコマンドが揃っている上、タスクのインポートやエクスポートも可能なので実務で便利に使うことができます。

 

惜しい点

一方でタスクの並びが追加した順でしか表示されないため、タスクが増えてくると少し見づらくなってしまいます。
こまめにremoveしてやらないと、せっかくCUIなのにターミナルをスクロールしないといけないのが微妙ポイントです。

タスクを完了・未完了で並び替えできるとこの問題は解決できるのですが、現在のバージョンではできないようです。
余裕があったら私のほうでプルリクを送ってみようと思います。

 

Twitter
1
ビジネスや研究でTwitterを分析・活用したい人が注意するべきポイント

商品やイベントのマーケティングや、ニーズの把握のためにTwitterを活用したいと考えている人は多い …

アプリ
ウェブページに直接付箋を貼れる超便利なChromeアドオン「OurStickys」

「このサイト、何度も見てるな…。前に見た時には何を考えてたんだろう…」 プログラミングで調べ物をして …

WordPress
ブロガー向け禁止語チェッカーを公開しました

こんにちは、mjmsです。 今回は先日公開した「禁止ワードチェッカー」についてご紹介します! 禁止ワ …