• Stars
    star
    676
  • Rank 65,239 (Top 2 %)
  • Language
    Dart
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A time tracking app that respects your privacy and the gets the job done without being fancy.

Time Cop
icon

A time tracking app that respects your privacy and gets the job done without getting too fancy.

Motivation

I'd rather not do time-tracking at all, but since its a necessity for my work, it's either use an app or keep track of things manually (which I'm terrible at). There are many time tracking apps on the app stores (and I have tried several of them), but each of them has at least one pain point that eventually drives me off—some cost more money than I think they should, others have (what I consider) poorly designed interfaces, some are way too complicated, some don't export data easily, most require an internet connection, I have privacy concerns with a large number of them, etc, etc.

Time tracking in and of itself is rather straightforward (hence all the apps on the app stores), so I figured “why not use this as an opportunity to practice mobile development and learn some new things?”. This app is the result of that question—its a tool that I use every day for work, but also a sample project to work off of and share with others.

Features

  • Offline-only, mobile-first
  • For Android (Google Play, F-Droid), iOS, and Linux
  • Fully private—there is no tracking / spying / advertising / etc
  • Keep track of tasks with multiple parallel timers that can be started with the tap of a button
  • Associate timers with projects to group your work (or don't)
  • Start, stop, edit, and delete timers whenever with no fuss
  • Export data as a .csv file, filtered by timespans and projects
  • Export the app's database for full access to all of its data
  • Automatic light mode / dark mode based on your device settings
  • Localized in several languages (thanks to Google Translate): English, Arabic, German, Spanish, French, Hindi, Japanese, Korean, Portuguese, Russian, Chinese (Simplified), Chinese (Traditional), as well as Italian, Czech, Norwegian, and Indonesian (via contributors)
  • Open source (licensed under Apache-2.0)—fork away!

Screenshots

Screenshot Screenshot Screenshot Screenshot Screenshot

More screenshots (including dark-mode and localization demonstrations) are available in the screenshots/ folder.

Contributing

I'm happy to take bug reports and pull requests if you want to help improve Time Cop, but I fundamentally want to keep this app relatively small and simple. If that's not for you, there's plenty of other options out there.

The app is created pretty much entirely in Dart using Flutter, and I tried to make heavy use of the Bloc pattern.

Here are a few resources to get you started if this is your first Flutter project:

For help getting started with Flutter, view its online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

After installing and setting up Flutter (ideally its latest stable version) and downloading the Time Cop code, you should be able to simply build and run this Flutter project, at least for mobile platforms. For more information, see the CONTRIBUTING.md file.

Localizations

You can help translate Time Cop on Weblate. If you notice any incorrect strings, feel free to correct them. Similarly, if you want to add a language, please do!

Translations are handled using Project Fluent. Currently all translations except English, Italian, Czech, Norwegian, and Indonesian were auto-translated by Google Translate using my Translate Tool.

Todo

A list of “user stories” (and I use that term very loosely) guiding the development of this app is available in design/user-stories.md; any unchecked boxes are outstanding items on the todo list!

More Repositories

1

Beamer-Theme-Execushares

A minimalist and modern Beamer theme
TeX
265
star
2

nomdebebe

A simple, private tool to help pick a baby name.
Dart
258
star
3

haxe-glm

Native Haxe functions for graphical linear algebra (à la GLM: https://github.com/g-truc/glm/tree/master/glm)
Haxe
44
star
4

headbutt

A GJK and EPA collision engine made with pure Haxe.
Haxe
42
star
5

haxe-gltf

A Haxe library for reading (and eventually, writing) GLTF files.
Haxe
25
star
6

baldrick

Entity-component-system (ECS) framework, based heavily on edge
Haxe
20
star
7

LuxeParticleDesigner

A tool for quickly designing / tweaking particle systems in Luxe.
Haxe
17
star
8

LuxeSightLights

Luxe implementation of Sight & Light by the wonderfully talented Nicky Case
Haxe
12
star
9

luxe_tusk_old_deprecated

My personal game engine
Haxe
11
star
10

benched

A statistics-based benchmarking tool for Haxe, inspired by criterion
Haxe
11
star
11

LuxeLights

A simple demo showing how to use render textures and shaders to create a _very basic_ 2D lighting effect (no shadows, no light "clipping").
Haxe
9
star
12

MammothBlenderTools

A plugin for Blender for preparing scene data for mammoth
Python
8
star
13

LEDDisplay

A C# program made for displaying useful data on the Dream Cheeky LED Message Board
C#
7
star
14

haxe-pako

Haxe externs for the https://github.com/nodeca/pako library.
Haxe
7
star
15

haxe-partials

A simple macro library for writing classes as partials (splitting a single class into multiple source files).
Haxe
6
star
16

mkbook

My personal simpler alternative to mdbook
Rust
6
star
17

ttf2cp437

Converts a `.ttf` file into a square Codepage 437 font atlas.
Rust
6
star
18

hx-blender-api

Haxe externs for the Blender API
Haxe
5
star
19

haxe_load_dll

Sample showing creating a dynamic library (with Rust) and loading and using it in Haxe (for the CPP target).
Haxe
5
star
20

translatetool

Tool for using Google Cloud to automatically translate Fluent `.flt` files.
Rust
5
star
21

mdbook-puml

A simple mdbook preprocessor for rendering inline PlantUML code blocks into inline SVG
Rust
5
star
22

FeatherRock

My LD32 entry!
Haxe
5
star
23

RegisAgro

A Luxe implementation of hnefatafl
Haxe
4
star
24

LuxePong

A single game of pong, written using Luxe as a learning excercise
Haxe
4
star
25

haxe-jwt

A JSON Web Token library for native Haxe
Haxe
4
star
26

vellum

A small terminal emulation package; based on and inspired by munificent/malison
Haxe
4
star
27

haxe-toml

A TOML parser for Haxe
Haxe
3
star
28

wysh

Self-hosted wishlist server + webclient.
Haxe
3
star
29

markdown_thirdparty

A Pelican plugin for including various third party Markdown extensions such as MathJax, Smartypants, etc.
Python
3
star
30

SimpleRestart

A simple scheduled restart plugin for Bukkit.
Java
3
star
31

xkcdgamejam

https://itch.io/jam/xkcdgamejam
Haxe
3
star
32

blog.hamaluik.ca

The sources for
HTML
3
star
33

Luxe3D

Experiments in 3D in Luxe
Haxe
3
star
34

BTLEDataLogger

A simple android app for connecting to and logging data sent over Bluetooth Low Energy UART serial services.
Java
3
star
35

gjk-demos

Visualize GJK collision detection in various dimensions
Haxe
3
star
36

LuxeBloom

A demo for Luxe showing one way to use shaders and rendertextures to apply a bloom effect to the screen.
Haxe
2
star
37

LD34

Ludum Dare 34!
JavaScript
2
star
38

CustomLuxePreloader

A simple demo showing a custom preloader in Haxe
Haxe
2
star
39

cef-simple

Small library / bindings for CEF in Rust
Rust
2
star
40

Woolli

Woolli is an entity-component-system framework for developing 2D cross-platform games using HaXe and OpenFL.
Haxe
2
star
41

mint-json

This repository is for developing a JSON loading system for the mint UI.
Haxe
2
star
42

todo-rs

A todo.txt CLI written in Rust
Rust
2
star
43

haxe-FileSaver

Haxe externs for https://github.com/eligrey/FileSaver.js
Haxe
2
star
44

patsy

Haxe
2
star
45

cef-rs

Chromium Embedded Framework bindings for Rust
Rust
2
star
46

foundation_images

A simple Pelican plugin for inserting captioned images into the foundation theme.
Python
2
star
47

MCNSACapes

Server plugin for managing custom MCNSA capes
Java
2
star
48

MCNSAChat2

The second generation of MCNSAChat
Java
2
star
49

skin-test

Testing skinned mesh rendering with Kha
Haxe
2
star
50

snow-8

A CHIP-8 emulator written in Haxe, built on snow!
Haxe
2
star
51

woolly

A playground for mammoth and tusk
Haxe
2
star
52

TFTColour

A simple colour picker for the TFT screens sold by Adafruit. Or, a very simple rgb888->rgb565 converter.
Python
2
star
53

haxe-PNGlib

Externs for PNGlib.js (http://www.xarg.org/2010/03/generate-client-side-png-files-using-javascript/)
JavaScript
2
star
54

kOS

My kOS scripts.
2
star
55

Po8-API

In-game commands to interact with the Po8 API
Java
2
star
56

mountain-lobster

Project mountain lobster is go!
Haxe
2
star
57

haxe-minimax

Simple library for implementing the Minimax algorithm
Haxe
2
star
58

foundation-default-colours

A pelican theme using Zurb Foundation 5 and the default colour theme.
CSS
2
star
59

AutoTileGenRearranger

A simple tool to convert the mangled mess of tiles output by AutoTileGen into something a little more friendly.
Python
1
star
60

mammoth

(todo)
Haxe
1
star
61

kha-shadows

Experiments with shadow mapping in kha
Haxe
1
star
62

tidy

A minimal theme for Pelican which makes use of bootstrap3.
CSS
1
star
63

PlayerNotes

Keep notes on players in Bukkit!
Java
1
star
64

rust-win32-custom-ctl-test

Rust
1
star
65

Tusk

Raspberry Pi game engine playground
C++
1
star
66

MCNSARanks

MCNSA Ranks
Java
1
star
67

MCNSAVerse

Server plugin for managing the multiple universes in MCNSA.
Java
1
star
68

animation-test

Testing skinned animations using GLTF in Kha.
Haxe
1
star
69

MCNSAChatServer

Java
1
star
70

NiuHeimar

Java
1
star
71

FuzzBasic

A simple lightweight scripting interpreter written in Java for use in Minecraft mods
1
star
72

MCNSAPvp

Disallow pvp for certain groups
Java
1
star
73

pcf8591

For interfacing with the PCF8591 8-bit A/D and D/A converter
Rust
1
star
74

photoshad

Create / edit images using shaders in your browser, leveraging WebGL.
1
star
75

MCNSAChat

A chat channel system for MCNSA
Java
1
star
76

tilecoding-rs

Port of Dr. Richard Sutton's tiles 3.0-beta code to Rust
Rust
1
star
77

chubster

A fully private calorie counter / food journal / health tracker that explicitely does not share your data.
Dart
1
star
78

turnip

(Blender addon) tools for baldrick ECS
Haxe
1
star
79

InstancePortals

Java
1
star
80

UtilityBelt_old_indicators

The server side plugin for the utility belt mod.
Java
1
star
81

gltf-sample-kha

Haxe
1
star
82

UpdateCiteULikeBib

A simple plugin for grabbing your latest cite-u-like bibtex file from the server
TeX
1
star
83

cef-client

A rust library for using CEF. Very basic and minimal for now, but not relying on the CEF views API.
Rust
1
star
84

kha-ko

Demo showing Kha unable to render non-latin (Korean) characters
Haxe
1
star
85

haxe-todo.txt

Native haxe library for working with todo.txt files
Haxe
1
star
86

scribbler-client

This repository holds the web client for scribbler.
Haxe
1
star
87

663Project

My MecE 663 FEM Project
C++
1
star
88

haxe-configurator

A JSON-based configuration loader, based on the idea that 'You deserve great error messages!'
Haxe
1
star
89

timecop.app

Website for the Time Cop app
HTML
1
star