Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

タスクに取り掛かる時のフローと状態管理 #152

Open
Kunado opened this issue Nov 20, 2018 · 3 comments
Open

タスクに取り掛かる時のフローと状態管理 #152

Kunado opened this issue Nov 20, 2018 · 3 comments
Labels
enhancement New feature or request

Comments

@Kunado
Copy link
Collaborator

Kunado commented Nov 20, 2018

タスクに取りかかってから作業を終わるまでのフローを整理する

@Kunado Kunado added the enhancement New feature or request label Nov 20, 2018
@Kunado Kunado changed the title タスクに取り掛かる時の画面フローとデータ管理 タスクに取り掛かる時のフローと状態管理 Nov 27, 2018
@Kunado
Copy link
Collaborator Author

Kunado commented Nov 27, 2018

5分だけやるボタンを押した時に一旦取り掛かったタスクがDOINGから再びTODOに戻る場合などを考慮して、タスクを終えたかどうかという単位でなく、タスクへの取り掛かかりという単位で記録したい。
実装としてはUserモデルとTaskモデルにひもづくContributionモデルを作るという想定。
5分だけやるボタンを押したり、TODOのタスクがDOINGに変えられた時、Contribution.newして、DOINGのタスクがTODOやDONEに変えられた時にfinish_timeに時刻を記録するみたいな。タスクに対してContributionがいくつか生える想定。

Contribution モデル

カラム名 制約 備考
id int NOT_NULL, PRIMARY_KEY
user_id int NOT_NULL, FOREIGN_KEY
task_id int NOT_NULL, FOREIGN_KEY
finish_time datetime タスク開始時に値がないためnullable
is_finish? boolean タスク終了の場合だけ別で記録したい

開始時刻は実質的に created_atと考えれて良さそう。

@Kunado
Copy link
Collaborator Author

Kunado commented Nov 27, 2018

ただこれをやる場合、タスクの状態管理をしっかりやらないといけないんですよね。
例えば今の所5分だけやるボタン押したらそのままユーザーをほったらかしだけど、5分経った時に一度通知して、継続するか終了するか選択させるとか(鬱陶しいか?)。
個人的にはタスクの実行を小さい単位で記録してモチベーションをあげるっていう設計思想は嫌いじゃないんですけども。現状だと頑張りグラフがあんまり変化がなくて機能として腐っているというのもある。

@Kunado
Copy link
Collaborator Author

Kunado commented Nov 27, 2018

タスクの開始をツイートして他人からの視線を意識するなら、ツイートにタスクへのURLがついていて他人がアクセスすると継続時間が見れるっていう機能があっても良いとは思う。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant