Code Monkey home page Code Monkey logo

tagtime-ui's Introduction

TagTime

Track your time effortlessly and accurately!

TagTime is an application that does stochastic time tracking. This means it will ping you occasionally and you should tag exactly what you are doing at that moment. TagTime captures tags for:

  1. Where you are
  2. Who you are with
  3. What you are doing
  4. Which project you are working on, and
  5. How you are feeling (high energy/medium energy/low energy)

Because TagTime captures tags randomly it is guaranteed to (after a while) give an accurate and clear picture of where your time goes.

TagTime works across multiple devices (Win/Lin/Mac) and synchronizes tags entered anywhere.

Elm is used for the UX.

tagtime-ui's People

Contributors

theproductiveprogrammer avatar dreeves avatar

Stargazers

Geoff Hubbard avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

dreeves

tagtime-ui's Issues

Export TagTime log

For the demographic that TagTime targets, this feature is probably needed from the very beginning. It may be hard for people to take the plunge with a new system unless they feel fully in control of their data.

Beeminder integration

The Perl version treats the TagTime log as the master copy for all time. You can change the tags on a ping from years in the past and it will adjust the data in Beeminder to match it. I think that's overkill and it should consider 7 days to be the statute of limitations. (Some indication of that in the TagTime app would be great.)

Add a way to change what category a tag is in

Currently if you misclick and put a tag in the wrong category there seems to be no way to fix it.

But see also my vague and rambly thoughts about categories in general:

I think my biggest bit of feedback so far (not to say this is the most important issue, just the most noticeable in my limited testing so far) is that being prompted to choose one of {activity, project, person, place} feels friction-y and restrictive.

Is the idea with those categories that you're storing metadata about the tags? Like so that TagTime knows that "alice", "bob", and "mom" are all type "people" so that it's easy to later show statistics about how much time you spend with people?

My first intuition is that the user should worry about such ontologies themselves. Like I have tags for certain people but I also have a tag for socializing. So I don't need TagTime to keep track of which of my tags are people. I know that and can put those tags in a group myself if I want to when computing statistics, or I may just care about time spent socializing, which has its own tag.

I'm not sure what my point is. Something about how the interface for answering pings should maybe only worry about the tags and the data analysis tools should worry about grouping tags into categories.

Integrate Auto-Update

Electron-builder has an auto-update feature that is very helpful and should be integrated

Allow paste in password field

I use 1Password, and generate LONG random passwords for everything. Please don't make me type it in by hand. Let me paste it in. Please.

Signup button seems unclickable

turned out this was kind of PEBKAC, but under the bold assumption that I'm not much dumber than typical users...

i just clicked "sign up" and assumed it would take me somewhere to sign up. it somehow did not occur to me that it wanted email and password filled in. i thought of those as strictly for the login button, with signup being separate. i'm in now!

To make that a proper bug report:

Steps to Reproduce

  1. Launch app to see login/signup page
  2. Don't fill in username/password
  3. Click the "Sign up" button

What Happens

Nothing. Clicking the button seems to be a no-op.

What I Expected

Either for login and signup to be different screens, or at least give an error message.

Show details about ping history

If you tail the output of the Perl TagTime daemon you see something like the following. I find it both reassuring and helpful. You see things like how many pings have pung, the average empirical gap between pings, how long TagTime has been running in total, and the exact times of all the pings.

Seeing the average empirical gap may be especially reassuring to newbies who are often skeptical when there's a long ping drought or a bunch of pings in a row. Something like this would reassure them that the average indeed converges steadily to 45 minutes.

And even for me after over a decade of TagTiming, I find it helpful to look at this and refine my intuitive sense of how often, say, 2+ hour gaps happen.

 951: PING! gap 02h08:31s  avg 45:59s tot 30d08h57:32s [28 03:41:11 TUE]
 952: PING! gap 41:03s  avg 45:59s tot 30d09h38:34s [08.28 04:22:14 TUE]
 953: PING! gap 01h01:20s  avg 46:00s tot 30d10h39:55s [28 05:23:34 TUE]
 954: PING! gap 26:54s  avg 45:58s tot 30d11h06:48s [08.28 05:50:28 TUE]
 955: PING! gap 25:59s  avg 45:57s tot 30d11h32:48s [08.28 06:16:27 TUE]
 956: PING! gap 31:31s  avg 45:56s tot 30d12h04:18s [08.28 06:47:58 TUE]
 957: PING! gap 04:42s  avg 45:54s tot 30d12h09:01s [08.28 06:52:40 TUE]
 958: PING! gap 25:08s  avg 45:52s tot 30d12h34:09s [08.28 07:17:48 TUE]
 959: PING! gap 49:29s  avg 45:53s tot 30d13h23:37s [08.28 08:07:17 TUE]
 960: PING! gap 44:25s  avg 45:53s tot 30d14h08:03s [08.28 08:51:42 TUE]
 961: PING! gap 10:21s  avg 45:50s tot 30d14h18:23s [08.28 09:02:03 TUE]
 962: PING! gap 07:34s  avg 45:48s tot 30d14h25:57s [08.28 09:09:37 TUE]
 963: PING! gap 36s  avg 45:45s tot 30d14h26:33s    [08.28 09:10:13 TUE]
 964: PING! gap 54:10s  avg 45:46s tot 30d15h20:44s [08.28 10:04:23 TUE]
 965: PING! gap 01h49:29s  avg 45:50s tot 30d17h10:13s [28 11:53:52 TUE]
 966: PING! gap 49:20s  avg 45:50s tot 30d17h59:33s [08.28 12:43:12 TUE]
 967: PING! gap 56:45s  avg 45:50s tot 30d18h56:17s [08.28 13:39:57 TUE]
 968: PING! gap 30:47s  avg 45:50s tot 30d19h27:04s [08.28 14:10:44 TUE]
 969: PING! gap 25:40s  avg 45:48s tot 30d19h52:44s [08.28 14:36:24 TUE]
 970: PING! gap 07:03s  avg 45:46s tot 30d19h59:47s [08.28 14:43:27 TUE]
 971: PING! gap 10:35s  avg 45:44s tot 30d20h10:23s [08.28 14:54:02 TUE]
 972: PING! gap 01h11:09s  avg 45:45s tot 30d21h21:31s [28 16:05:11 TUE]
 973: PING! gap 01h14:43s  avg 45:47s tot 30d22h36:14s [28 17:19:54 TUE]
 974: PING! gap 02h02:06s  avg 45:52s tot 31d00h38:21s [28 19:22:00 TUE]
 975: PING! gap 28:55s  avg 45:51s tot 31d01h07:16s [08.28 19:50:55 TUE]
 976: PING! gap 02h42:11s  avg 45:58s tot 31d03h49:26s [28 22:33:06 TUE]

PS: It's up to 976 pings because that's how long it's been since I rebooted my laptop.

Email copy tweaks and copy/paste bug

Subject: here is your verification information from Tagtime

Hello ,

Thank you for signing up for Tagtime. The next time you attempt to login, you will be asked for a verification key.

Please copy and paste the string given below in the Verification Key field

Things I noticed about the above email copy:

  • Let's standardize on camelcase "TagTime" (not "Tagtime", and elsewhere in the app it's "Tag Time")
  • Missing name ("Hello ,")
  • As a verb it's "log in" not "login"
  • Not relevant to the email copy but I couldn't paste the key into the field. Command-V just wouldn't do anything. I had to manually type it in. I'm on macOS High Sierra 10.13.5.

First line of exported log has wrong timestamp

I answered a few pings and then exported my log and got this:

1534210892 bab                                         [2018.08.13 18:41:32 MON]
1534211430 bab b                                       [2018.08.13 18:50:30 MON]
1534212059 b                                           [2018.08.13 19:00:59 MON]
1534212245                                             [2018.08.13 19:04:05 MON]

But that first line does not correspond to any TagTime ping. There was one at 18:37:08 and then the one at 18:50:30.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.