25 ms·
Show HN: Time Cop – A simple, private, open-source time tracking app
- hamaluik 7y agoI was recently inspired by a post on HN: “An app can be a home-cooked meal” [1] and decided I was finally done putting up with time tracking apps that didn't suit my own use case well enough. I hate time-tracking, but it is a requirement of my job (grants that help pay for my job, really) and if I don't have an app handy, I tend to forget to record my time. I've tried numerous time-tracking apps on the app stores, but they've each fallen short for me in some way or another—many are too complicated, or don't _just work_, or cost more than I think is reasonable. Many necessitate sending data over the network for multi-device sync—a feature I have no need of, but can never disable. Since time tracking is fairly simple, I decided to write my own app to scratch my own itch. I also decided to publish the app and use it as a learning experience—I've worked on parts of mobile apps before, and developed proof-of-concept mobile apps before, but I wanted to follow the process through from start to end. I also decided to localize it (using Google Translate) for the experience of doing so. My biggest take away from all of this is that the work required to create and manage a store presence (localization and especially localized screenshots) is almost an order of magnitude more work than programming the damned thing in the first place. In any event, this is an app I made for myself. But if you want to use it or fork it for your own purposes, please do. [1] https://news.ycombinator.com/item?id=22332629 https://news.ycombinator.com/item?id=22332629
- rendall 7y agoAwesome! 0.79€ is a steal. Purchased!
- hamaluik 7y agoThanks for checking it out!
- deleted 7y ago[deleted]
- nileshtrivedi 7y ago> I decided to write my own app to scratch my own itch. I also decided to publish the app and use it as a learning experience. Strongly agree with this. I was fed up with all the messaging apps that compromise on security and privacy, so started building one just to be used within a family. Using this as a chance to learn Flutter and making it open-source with end-to-end encryption. Not yet ready for prime-time so PRs are welcome: https://github.com/nileshtrivedi/family https://github.com/nileshtrivedi/family
- hamaluik 7y agoLooks awesome! I will see if I can get some of my family to try it out.
- wtmt 7y agoI had a quick look and found it interesting. Do you have any writeup (on GitHub or elsewhere) on how people connect with each other (since phone numbers aren't used as identifiers) and also how the end-to-end encryption (mainly key exchange) works?
- nileshtrivedi 7y agoThe first member would create a group, and others can join that group by scanning a QR code. Strictly wanted to avoid any PII such as phone numbers. Need ideas on how to handle things like removing a person from a group (i.e. resetting the shared private key). For encryption, the idea was to keep things simple and have the QR code be the private key so that it's never transmitted. But another option is to use Matrix.org's E2E protocol which is a lot more work and requires a server.
- uoaei 7y agoLooks great and I'd love to try it. Does it record also the times that the timers are started / stopped, or only the duration of time that the timers are on?
- hamaluik 7y agoThe times that timers are started and stopped, it calculates the duration from that. If you would like a promo code you can email me and I’ll get you sorted.
- deleted 7y ago[deleted]
- throwaway55554 7y agoWow! Look at the features! Such a breath of fresh air. Summary: > Offline only > Export to .csv > Fully private > Full access to the db Nicely done!
- hamaluik 7y agoThanks!
- eftokay83 7y agoJust wanted to let you know that Google Translate is really funny sometimes. The /de/ page translates "fork away" with "weggabeln" which is really not what you meant (although it is really really funny). A better translation would be "erstellen Sie Ihren eigenen Fork".
- hamaluik 7y agoThanks, I'll fix that right away! Knowing some French I know that the translations can be a bit.. special sometimes. For this app all I can hope for is than in most cases the poor translations are better than no translations.
- wingerlang 7y agoYea I would not even bother with automatic translations.
- hamaluik 7y agoTranslating the app was more an exercise in figuring out the technical and marketing details for translating an app. Hopefully the translations are entirely unusable at least.
- frakkingcylons 7y agoThe phone on the home page looks like an iPhone but the UI looks like Android?
- hamaluik 7y agoThe app is built with Flutter [1], which uses Material design by default. So it's cross-platform, but uses an Android design system. I briefly experimented with making it look more native on iOS, but although Flutter is capable of that in theory, it was a giant pain in the butt in practice and not worth it to me for this app. [1] https://flutter.dev/ https://flutter.dev/
- wpietri 7y agoHow did you like Flutter for this? I've been playing with it some, and overall I like it a lot. I think they've made a bunch of smart choices, and the developer experience is great. But library support ended up being a huge problem for what I was trying to build. E.g., the official Flutter webview [1] is still marked as "Developers Preview" and says "it is not recommended to rely on webview keyboard in production apps". And I was also very disappointed with the mapping library support. [1] https://pub.dev/packages/webview_flutter https://pub.dev/packages/webview_flutter
- hamaluik 7y agoI mostly really like Flutter. I haven't done a huge amount of UI development work in my life, but of the things I have used, I have found Flutter to be far and away the easiest to quickly express the UI you want to build and just build it. I think its killer features are the cross-platform support by default and the hot-reload—I found the hot-reload functionality so invaluable that I ended up jerry-rigging hot-reload into my current product at work. You're right that it is definitely still rough in some places though. The libraries on pub.dev can be very hit-or-miss, and I definitely wasted some time trying various libraries from there before either giving up or rolling my functionality. I too explored a mapping project using it a year or two ago now and ended up having to essentially create my own map view using mapbox APIs (unfortunately I don't have code that I can share from that project). That said, I find Flutter is at least relatively easy enough to implement things that you can't find from the ecosystem.
- qwertygerty 7y agoAwesome! Except, how do I trial run it before buying? (without having to checkout code and running an emulator...)
- hamaluik 7y agoThanks! And uhh.. you can't really, sorry. I didn't really think of that before submitting. Part of the learning process was to create a paid app and learn about the forms and processes required by Apple and Google to sell paid apps. If you would like a promo code, let me know and I'll set you up!
- chli 7y agoI think that feature is built in the Android Play store. From what I understand you can get a refund if you don't like the app.
- 2data222 7y agoJust bought it with Google Play credit to give it a spin. I don't have to record my time for work. I'm interested in it for personal accountability. I see it as making yourself step on the scale if you're trying to lose weight.
- hamaluik 7y agoThanks! I need it for work, but since getting my wife to beta test it she has also used it to somewhat similarly to pretty good success.
- fenwick67 7y agoI have been working on doing something similar automatically using a PIR occupancy sensor on an ESP32, since I can never remember to clock in or out at home. It's mostly working.
- hamaluik 7y agoCool! Unfortunately I need to track things more granularly than “at home / at work / at desk / etc” otherwise something like your solution would be so much better because of the automation!
- welder 7y agoWakaTime is good for this, as it automatically groups into projects based on git repo.
- t1mmen 7y agoWakaTime is awesome, assuming you only need to keep track of how how long you're working on code. Shameless plug follows: timelyapp.com is similar to WakaTime, except it keeps track of _all_ the programs you use on the desktop, and for how long (MacOS/Windows only). Timely also tracks when you leave/arrive at work/home/other locations (GPS, requires mobile app). We can't claim offline mode, but all tracked "memories" are 100% your-eyes-only. Timely is a time tracker specifically built for people who are bad at remembering what they worked on/don't log hours frequently. Sice Timely's "memories" are recorded to-the-minute, you can easily log accurate timesheets, even if you only do so once a month. (Disclaimer: I work on Timely)
- mosselman 7y agoIf I want backups for this on iPhone, would I have to manually export or is there some icloud sync?
- knubie 7y agoLooks great! Are there any filtering options available? E.g. view all timers for XYZ project from March 1-31, then show total time?
- fluidcruft 7y agoThanks! Only snag so far is I logged a test thing and I can't figure out how to delete it. I also have to do a lot of task switching, so it would be nice to select an existing log (like one I was working on 15 min ago) and copy it or restart it. I figured out that I can have multiple running timers but they all run continuously.
- hamaluik 7y agoYou can do those things! You just need to be a magic mind-reader and somehow know that you can swipe items left or right to either delete them or start (copy) them. Swipe a timer to the right to show a “delete” button, swipe to the left to show a “start / copy” button. Once I can figure out how to make one of those step-by-step walk-through tutorials I'll definitely add that to the app, because that functionality has absolutely 0 discoverability.
- fluidcruft 7y agoOh! Perfect. I was trying to long press. I love swipe left/right but so few apps use it that I didn't even think to try.
- cl3misch 7y agoIs it by design that I can't swipe on the "parent" of multiple instances of the same activity?
- hamaluik 7y agoNope! It's by forgetfulness. There's no reason to not have that and would definitely make sense, I'll try to add that shortly. Thanks for the feedback!
- justkez 7y agoOn the desktop side, I'd recommend Tim[1] to anyone looking for a similarly-simple, hassle free time tracking app ($2.99 on Mac app store). My only gripe is you can't archive old tasks so the menu gets a little overwhelming. [1]: https://tim.neat.software/ https://tim.neat.software/
- hamaluik 7y agoLooks great! I don’t use a Mac unfortunately though
- 1970-01-01 7y agohttps://youtu.be/cUAz83K0YRc https://youtu.be/cUAz83K0YRc
- hamaluik 7y agoHeh, yea.. my wife informed me of the movie after I had already bought a domain name and posted the first version online. Hopefully a time-tracking app is different enough from time-travel crime to not cause issues!
- BTBurke 7y agoI grew up watching those Van Damme movies so I bought it just for the name!
- tsherr 7y agoLooks cool. I bought it to try it out.
- hamaluik 7y agoAwesome, thanks!
- bornelsewhere 7y agoA happy user of TimeKeeper[1] for Mac. Had an issue, author quickly fixed it. Thumbs up! [1]: https://timekeeperapp.com https://timekeeperapp.com
- sytelus 7y agoHuh? Is this mobile only? Value of such apps are mostly on PC for information workers. IPhone already has screen time etc.
- hamaluik 7y agoYes, it's mobile only. It does not track what you're doing on your phone—you tell it what you're doing and it keeps track of it. I use it at work for recording when I'm in meetings, when I'm actively developing, when I've researching, etc—things that I need to report but don't want to manually write down and things that aren't captured by things like screentime. I always have my phone with me and handy, whereas I don't always have my computer with my nor handy.
- PTOB 7y agoThis is just what I've been looking for, and you beat me to scratching that itch. My job requires granular time tracking, but I've got to be able to do it at my desk and away from the office. As an Android user I can combine this with scrcpy[1] to take advantage of my fast desktop keyboard when I'm sitting down. [1] https://github.com/Genymobile/scrcpy https://github.com/Genymobile/scrcpy
- hamaluik 7y agoAwesome to hear! scrcpy looks really cool, it Kinda makes me wish I still used an Android on the regular.
- rkagerer 7y agoIt's a sad world where this is worthy of being your top feature: ...there is no tracking / spying / advertising / etc Thanks for contributing to make the world a little less sad!
- hamaluik 7y agoI agree and thanks!
- hiaux0 7y agoThis comes right on time! I was looking for some tracking apps yesterday, but wasn't satisfied with any of the choices. I went for an Apple Shortcut instead `speedy time tracker`. However, I will switch to yours to show support! It would definitely be nice to add shortcut capabilities in the future :) ------- My Feedback: - Starting/Stopping timers should happen on press of list item - Editing should happen on swipe left (essentially swapping start and edit) - Running times could be indicated in the list itself, no need for separate section "Running Timers" - If, I want to resume, eg. Work, a dropdown appears, eventually leading to Work (total time)> Work (time1), Work (time2), which makes it hard to resume (Now I have to open the list)
- hamaluik 7y agoThanks! A shortcut is a good idea, I’ll look into that. I’ll play around with your other suggestions but not sure if I’ll keep them (but thank you for them!). I had fiddled with how things worked and settled on where it is now because it felt the most intuitive to myself. For example when I had the running timers in the main list itself I found it easy to forget that I had a timer running. Grouping all running timers in one spot helped cut that down without too much fuss otherwise.
- hiaux0 7y agoNo problem! I figured you had iteration already, and it's how you prefer things, so no biggies :). But also thanks for your insights on the running timer ux
- tonywastaken 7y agoA Siri Shortcut would be great!
- Method5440 7y agoPicked up a copy to support dev and fellow HN user - nice side effect is that I can use it, too. :)
- hamaluik 7y agoThanks so much!
- xerxesaa 7y agoI also did a little project for this: https://workfission.com https://workfission.com
- maelito 7y agoI'm looking for an equivalent of Stretchly for Android. The goal of Stretchly is not to put a timer on your tasks, but simply to remind you that you shouldn't stay more than 20 minutes looking at your monitor without going to walk, stretch, look far through your window, etc.
- segmondy 7y agoYou can do that with a script, here's mine. It reminds me every 15 minutes. It speaks it via speaker, then captures it and logs it and time. #/bin/bash while sleep 900; do DATE=`date` echo "Hello, what are you doing?" | espeak DOING=`zenity -entry --text="what are you doing?"` echo $DATE, $DOING >> ~/data/doing.txt done
- maelito 7y agoIs it possible to add to this kind of script the monitoring of idle time ? With a reset when back from an idle time longer than the pause.
- segmondy 7y agoYes, there are commands you can use to monitor keystrokes and mouse movement from command line and I'm sure you can use that to track the idle time.
- brobinson 7y agoIsn't this basically the Pomodoro Technique? There's a ton of apps/programs that implement this.
- maelito 7y agoI've not found any that monitors your active time to give "smart" pause advices.
- the_pwner224 7y agohttp://www.workrave.org/ http://www.workrave.org/ Works on Windows (XP or newer) and Linux. Free. Configurable time limits for micro/normal breaks, and a daily limit. Flashes a popup when nearing the limit, then blanks your screen and starts the break timer. Option to postpone the break a limited number of times, or skip the break. Tracks your postpone/skip history and overall usage history so you can be disappointed in yourself for skipping breaks too often. Auto-detects when you have been away from the computer and counts that as break time.
- screamingninja 7y agoWould you consider sharing the app on f-droid for those trying to stay off of the Google ecosystem? https://f-droid.org/ https://f-droid.org/
- trulyrandom 7y agoAnyone can submit new apps to F-Droid, the author of the app does not need to be involved.
- screamingninja 7y agoFair point, but this is an opportunity for the author to add donation links to the f-droid listing and generate additional revenue.
- hamaluik 7y agoSure! Will look at that this evening when I get some time. Thanks for the suggestion!
- facebiff 7y agoNice work! FYI, there is a ruby testing library with the same name that's somewhat well-known (~3K stars on github) https://github.com/travisjeffery/timecop https://github.com/travisjeffery/timecop
- rsanek 7y ago>Associate timers with projects to group your work (or don’t) Perhaps it's because I'm so used to seeing marketing materials that always present features in a way that assumes you'll use them, but the "(or don't)" here caused me to actually laugh out loud and made the "no tracking / spying / advertising / etc" comment above more believable. Well done.
- monadic2 7y agoApple opened up its API tracking wasted time?
- deleted 7y ago[deleted]
- stevewillows 7y agoThe overall workflow for this app is so intuitive. Really nice work. This is perfect -- and will also be perfect for cooking large meals.
- hamaluik 7y agoThanks so much! I never would have though about it for cooking meals, but that's a very clever use for it!
- monadic2 7y agoDoes it work as well as the built in tracker?
- hamaluik 7y agoIt’s rather different. It doesn’t automatically track what app you’re using in your phone, rather you record things such as when you’re in a meeting, or actively working, or researching, or going for a run, etc.
- nakovet 7y agoThank you! Bought it because of many reasons: cheap, simple, fits my use case. I like the Pomodoro Technique a lot, if possible would you add countdowns or something, for example: * 25 minutes (countdown) - researching analytics SaaS
- kmtrowbr 7y agoI have used OfficeTime https://www.officetime.net/ https://www.officetime.net/ for the past 10 years. I use the OSX version. You can sync between multiple clients on different devices, but I don't use this. For me, it's just a very simple, lightweight client app which keeps track of time and has basic reporting and invoicing functionality. I really like it. It is paid though but, it's a one time fee for years and years of use, if that makes sense.
- programmarchy 7y agoIt's refreshing to see the $0.99 app deal again. No subscription nonsense. For time tracking, the best method I've found so far is just to use the Calendar app. I have a different calendar for each task type (meeting, development, project management, etc.) I put in the person or client/project in the event title, and use the notes field for details. It's quick and easy to edit time blocks by creating a new event and resizing it as needed. Visualization of how I'm spending my time in the weekly or monthly views is intuitive. Automatically syncs with all my devices. No timers though, although admittedly I frequently forget to stop those anyway.
- Summershard 7y agoOn Windows I recommend Baralga. It's quite old, UI is simple, and it just works. It's still maintained. https://github.com/Baralga/baralga https://github.com/Baralga/baralga
- zwilliamson 7y agoHow cool would it be if you could partner with Jean-Claude Van Damme on this?