Coder Social home page Coder Social logo

drmargarido / d-tracker Goto Github PK

View Code? Open in Web Editor NEW
21.0 4.0 3.0 9.54 MB

Cross-Platform, lightweight and simple timetracker

License: MIT License

Makefile 3.27% C 3.71% CSS 9.71% Lua 82.56% Shell 0.29% Python 0.46%
timetracker d-tracker tekui luajit hamster cross-platform

d-tracker's Introduction

D-Tracker

Lightweight, cross-platform and simple to setup timetracker. Similar to hamster but uses about 10MB of RAM and has a small quantity of dependencies.

Motivation

I used hamster timetracker for my projects for years, but lately it disappeared from the debian repositories. I downloaded their latest version from github and it was not working well. After trying their other alternatives it was still not working well, so I decided to build the 'D-Tracker'.

My focus here is to:

  • Implement the main features I use regularly.
  • Reduce the number of dependencies and build steps so it is easier to make sure the application will still be easy to install in the future.
  • Have a small resources usage so I can have it open all day without thinking about it.
  • Be cross-platform so it works in more machines.

Milestones

Release 1.0:

  • Start task
  • Stop task in progress
  • Edit the start and end time of an individual task
  • Associate a task with a project
  • Export filtered tasks to XML with the same format as the hamster timetracker
  • Listing of tasks per range of days
  • Project/Task Statistics by range of days
  • Autocomplete in task creation

Release 1.1:

  • Select themes

Release 1.2:

  • Command line client

Release 1.3:

  • Remember last filtering range in overview window
  • Simpler date range navigation in the overview window

Release 1.4:

  • Periodically remember the currently active task

Release 1.5:

  • Allow the copy of the tasks in the totals window to the clipboard

Screenshots

D-Tracker UI with Default Theme D-Tracker UI with Stain Theme D-Tracker UI with Klinik Theme

Install

To run the application use the most recent release in the releases page.

Linux

Package Manager

Binary Release

You can download the latest binary here.

The application is self-contained in the folder so if you just want to run it there execute the run.sh file.

If you want to install it to the system run the INSTALL.sh. When installed in the system and started, a database will be created inside the ~/.local/share/d-tracker/ folder.

To uninstall run the UNINSTALL.sh command. It will remove the whole application but still keep the database, so you don't lose your data in case your want to re-install it later.

Build from source

The dependencies in the dependencies list are bundled within the repository and will also be compiled. In order to build the project from source you will need the following packages: automake, libtool, libx11-dev, libxft2-dev, libxext-dev, libxxf86vm-dev and libdbus-1-dev.

To run the application self contained in a single folder run the following command and check the build/ generated folder.

make

To install the application in the system run:

make
sudo make install

To uninstall the application from the system run:

sudo make uninstall

Windows

Binary Release

You can download the latest binary here.

The application is self-contained in the folder so you just need to run the d-tracker.exe file.

Build from source

The dependencies in the dependencies list are bundled within the repository and will also be compiled.

My development environment is in Archlinux and Debian so I cross-compile the application. To compile the windows version you will need to have installed the mingw-w64 package. Then run:

make release_windows

After running the command, the self contained version of the software will be built in the build/ folder.

Cli

D-tracker has a cli, d-tracker-cli that provides the following commands:

list-today-tasks      List today tasks
list-tasks            List tasks between a time range
list-projects         Lists the projects available in the database
delete-task           Delete a specific task
add-task              Add a new task
edit-task-time        Edit the time of a specific time
edit-task-description Edit the description of a specific task
edit-task-project     Edit the project of a specific task
export-today-xml      Export today tasks to a xml file
export-xml            Export tasks in a time range to a xml file
export-today-csv      Export today tasks to a csv file
export-csv            Export tasks in a time range to a csv file
stop-in-progress      Stop the current task in progress

Development

If you are interested in improving d-tracker by improving stability, adding new functionalities, plugins, themes or other things check the development section.

Testing

To run the tests you will need busted.

Note: The tests will create and remove the database inside the build folder, be careful to not run the tests with important data there.

With that just run:

make test

Dependencies

The dependencies are in the external folder.

  • luajit - Used as scripting language to implement the application.
  • lsqlite - Contains the database and lua wrapper to communicate with it, so we can store the application data.
  • date - Used for parsing and handling of dates.
  • tekui - Used to implement the whole UI.
  • LuaFileSystem - Used to list the folders when exporting the tasks to XML.
  • freetype2 - (Only for X11) Used in the render of text and fonts in the tekui lib.
  • argparse - (For the cli) Used to parse the command line options.
  • libclipboard - Used in the copy_totals plugin to interact with the clipboard.

Other

A devlog for the development until the version v1.2 is available in here.

d-tracker's People

Contributors

drmargarido avatar ricferr avatar ubermanu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

ricferr ubermanu

d-tracker's Issues

CLI add-task: parsing args error

Version: 1.52.r1.g99e6ed1-1 (from AUR)

I cannot add a task from cli if its name or project contains spaces

$ d-tracker-cli add-task "my task with spaces" "my project name" 
Usage: d-tracker-cli add-task [-h] <description> <project>

Error: too many arguments

Unicode/Cyrillic problem

My system: Arch Linux, Wayland/Sway WM. Installed d-tracker v1.4.r1.gafdeafc-1.
Locale is ru_RU.UTF-8.
When I try to enter Cyrillic text to the app, I get unreadable text, aka tofu, aka squares: https://i.imgur.com/rRP7lAt.png
Most likely it is related to fonts, but I could not find out how to change display font. Only color themes could be changed.
Is there any additional information I could provide to help solving this?

Install broken on Arch

Arch install breaks because of an install-time dependency on busted. Busted fails to install on Arch currently because --no-manifest appears to be an invalid argument to luarocks, ie "luareasons"

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.