elvishcraftsman / time-tracker

This repository is for a time tracker program for Linux. Feel free to contact me through my website.
https://lynnmichaelmartin.com
5 stars 2 forks source link

UX improvements #3

Closed elvishcraftsman closed 1 month ago

elvishcraftsman commented 2 months ago

Since this is the first issue and already has some offtopic feedback, I'll add some more.

I was trying out various open source time trackers and this was one of the best UX wise.

One of the most lacking features for me is not being able to pause/resume tasks. I'll have to use Furtherance for the time being.

It would also be good to improve the UI of the list view. It feels cluttered now. If there's no project, I wouldn't output "Project: (no project)". I would take inspiration from Furtherance on list view UI - I think they nailed it. Maybe I'd improve time format to a more human readable form of 35m vs 00:35:00.

I would get rid of snackbars informing about file writes. It's not relevant to users unless there are errors.

The rest looks good. Best of luck with the project :rocket:

Originally posted by @tomaskikutis in https://github.com/elvishcraftsman/time-tracker/issues/1#issuecomment-2246393586

elvishcraftsman commented 2 months ago

@tomaskikutis It's great to hear what features people are using "in the wild." I think I can implement most of these. I've been wanting to redo the list view to make it look better anyway. And the toast messages were more important when the app was more unstable and sometimes glitched. At this point, the time tracking and syncing features seem to be quite stable, so I can remove them.

Do you have thoughts on whether to display individual time entries separately or grouping ones with the same project and description under one list view item?

tomaskikutis commented 2 months ago

Do you have thoughts on whether to display individual time entries separately or grouping ones with the same project

What's important for me is to have items sorted in the same order as logged - newest at the top. Grouping might mess it up. Since I'm not using projects feature at all - I don't have a preference. If you have enough time to spend on this a configuration option would be best so people could view it as they like - grouped or not.

elvishcraftsman commented 2 months ago

Sounds good, that's my preference as well.

being able to pause/resume tasks

Do you mean being able to resume just any task that exists in the log, or just the currently running or most recent task?

tomaskikutis commented 2 months ago

Do you mean being able to resume just any task that exists in the log, or just the currently running or most recent task?

I'd allow any. In practice I'd mostly resume tasks from today or last working day(which due to public holidays and weekends wouldn't always be previous the calendar day). Other people might jump between projects every few weeks or months and would like to resume some of the tasks from another project which might not even be last they worked on - so I think not limiting this is best.

elvishcraftsman commented 2 months ago

The challenge is with the way Time Tracker records time entries. Each entry's length is calculated by its start and stop date/time. That means that if you resume a task that was stopped, you're giving it a different end time.

The trouble with that is that you might end up overlapping two different time entries, which technically can be done, but would look funny, since the start/stop dates of some entries wouldn't actually reflect the real start and stop. Also, if you resumed a time and then stopped it again, it would simply assume that the entire time between the original start time and the new end time was for this task. So you could end up logging way more than you intended.

The way I would foresee it working would be, when you click the resume button, to start a new time entry that simply has the same project/description/tags as the old time entry. Then you'd have two time entries, but they would both appear in the same filters/reports.

But it sounds like you don't use the project or tags? Or do you use tags? What are your thoughts?