-
Notifications
You must be signed in to change notification settings - Fork 23
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
Start|Stop Timer for Item (Task) #265
Comments
This timer feature sounds good to me.
|
@nelsonic great questions. 👍
Thanks again for your feedback! I will proceed with building this functionality as described above |
@nelsonic Thanks for writing this out! My thoughts on @SimonLab's questions (thank you for these):
|
Timers working on MVP: https://mvp.fly.dev/ |
@iteles please UAT this on the MVP and confirm we have the |
As noted above, |
Story
As a
person
wanting to maximise my personal effectiveness,I want be able to associate (
start|stop
) a timer with a task (todo list item)So that I can keep track of how much time I have spent on a given task.
Context
It has always been one of our core objectives to track time against tasks.
One of the most frustrating things about most task/todo apps is that they don't have this feature!
Not being able to track the time spent on a task leads to people being distracted/unfocussed.
It's incredibly frustrating to work in a team where it's impossible to see what other teammates are working on or how long they has spent on a given task. This is a systematic problem of all "ticketing" systems like JIRA, Trello or Asana. It means everything takes longer than it needs to. Let's fix it.
Given that it's a "core" feature, we already have the Schema in place for attaching
timers
toitems
.It's a
one-to-many
relationship which means anitem
can have multiple timers.This means you can
start|stop
severaltimers
for a givenitem
and accumulate a total amount of time spent on a task over one or more sessions.Todo
lib/app_web/templates/item/show.html.eex
template toitem
inline instead of in a<ul><li>
similar to the TodoMVC UI<button class="{item.id}-start">
tostart
&stop
a timer for a task.<div class="{item.id}-timer">
to display the timer for the task.<div>
whenstart
button is clicked.test
intest/app_web/controllers/timer_controller_test.exs
timer
record in thetimers
table.item_id
function
is written (because this is new functionality) ...timer
entry for theitem_id
when thestart
button is pressed.Elixir
)start_timer/1
function
to be invoked to make the test pass.start_timer/1
when thestart
button is clicked/tapped.JavaScript
code in that enhances the server-rendered page to:HH:MM:SS
in the<div>
created above.SS
e.g:7
,8
,9
, etc.10
,11
,12
, etc.1:01
,1:02
etc. where the0
is now significant.9:59
(nine min and fifty-nine sec) add the next digit:10:00
,10:01
,10:02
, etc.59:59
has passed add the first hour digit:1:00:00
9:59:59
, add the final digit of significance10:00:00
stop_timer/1
functionstop_timer/1
function to pass the teststop_timer/1
should Update thetimer
record with anend
valuestop_timer/1
when thestop
button is clicked in the UI.Proposed MVP UI/UX
This proposed UI/UX is just to create the MVP functionality.
It will change over time as we use the App and collect feedback.
https://www.figma.com/file/WrpkKGJNYZbeCzMRDVtvQLbC/dwyl-app?node-id=0%3A1
Walkthrough of UI/UX Screens:
list
with 5items
in this case thelist.title
is "Todo List".start
button is displayed on the right of eachitem
start
for a givenitem
is clicked:start
button for thatitem
is hiddenstop
button appearsstart
buttons for all otheritems
(to avoid multiple concurrent timers)timer
is displayed above thestop
button.timer
is updated once per second to show the passing of time.stop
button for a timer that is running is clicked:stop
buttontimer
from counting. (clearInterval(timer)
)start
timeritem.text
to signal that theitem
is done:item.text
to show that it is complete (feedback welcome on this UX)start
button for thisitem
as it's no longer relevantitem
Feedback on this issue/spec very much welcome. 🙏
I'm not "precious" about any of it, if you think we can do better UI/UX/functionality, comment!! 💬
I intend to start building it today. Once it's ready for review I will assign the PR. 📦
The text was updated successfully, but these errors were encountered: