Simple interactive command line time tracker
Tags: opensource, cpp, showdev, contributorswanted
Published: 2020-01-28 20:24:36

This tool allows you to track your time for all your projects or needs. You can manage your projects and export it for your needs.  

I build this project for fun and i hope someone can need it.
I appreciate every help i can get. :)  

## :page_facing_up: Table of Contents
- [Installation](#pager-installation)
- [Usage](#clipboard-usage)
- [Configuration](#wrench-configuration)
- [License](#scroll-license)
- [Github](#paperclip-github)

## :pager: Installation
Follow the steps below for installing:  
```bash
$ git clone https://github.com/thomasschwarz96/ts-timetracker.git  
$ cd ts-timetracker  
$ cmake .  
$ make  
$ sudo make install
```

## :clipboard: Usage
```bash
$ ts-timetracker
```
That's it. Now the interactive command line starts and you can start to track your times on your projects or for your needs.  
To Exit, just type '**exit**' or press <kbd>Ctrl</kbd> + <kbd>c</kbd>.  
Here are all commands you can use:

| COMMAND              | DESCRIPTION                                                               |
| -------------------- | ------------------------------------------------------------------------- |
| help                 | Show's the help menu                                                      |
| touch &lt;name&gt;   | Create's a new project with entered name                                  |
| rm &lt;name&gt;      | Delete's entered project                                                  |
| ls &lt;item&gt;      | List selected items (use 'projects', 'config' or 'times')                 |
| use &lt;n&gt;        | Set project to track time on, a number from 'list' command                |
| start                | Start's timetracking                                                      |
| stop                 | Stop's timetracking                                                       |
| save &lt;comment&gt; | Save new timetrack on selected project with entered comment               |
| export &lt;p&gt;     | Export selected project to given path (selected project by 'use' command) |

## :wrench: Configuration
Default path of the config file: **~/.config/ts-timetracker/**  
Name of the config file: **ts-timetracker.conf**  
The config file will be generated automatically while installation.  

Possible config values:  

| OPTION       | POSSIBLE VALUES / EXAMPLES       | DESCRIPTION                                             |
| ------------ | -------------------------------- | ------------------------------------------------------- |
| timeFormat   | %d.%m.%Y %T                      | format is used for displaying time                      |  
| projectsPath | .config/ts-timetracker/projects/ | path is used for creating, saving and deleting projects |  
| storage      | filesystem                       | indicates which model should used                       |  
| view         | terminal                         | indicates which view should used                        |  


## :scroll: License
[MIT-License](https://choosealicense.com/licenses/mit/)  

## :paperclip: Github
For more informations check out the [repository](https://github.com/thomasschwarz96/ts-timetracker)