Giter Club home page Giter Club logo

tasktimeterminate's People

Contributors

kimbtech avatar malte311 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

tasktimeterminate's Issues

Time format

The time format always shows hours and minutes. Add Days here also. (Maybe user decideable in config.)

Prefill and Autocomplete in Dialogs

  1. Display last used category in dialog (as prechoosen value in dropdown)
  2. Prefill task with last task (as placeholder)
  3. Autocomplete for tasks

1./ 2. via added commandline parameters -cats A,B,C -lastcat B -lasttask Test
3. Local socket, send a string Co and get a list of possible Tasks back Coding,Cooking,...

ToDo Windows macOS Core-Support OOP-Core-Support
1.
2.
3. ✓*

^* Disabled by default (until now)

Longterm Peformance

Currently TTT crunches many data "on-the-fly". Using TTT for a long time, could result in too much data and therefore long running reports. The system should store preprocessed data and cache results better.

In the end the sync protocol is also time consuming, maybe one cloud also add better caches there and implement some type of "summary access" (s.t. not all plain data has to be transmitted always).

More time ranges in stats

Add more possibilities to query the stats for default time ranges

  • ttt s year The last year (last 356 days)
  • ttt s cYear The current year (last 01.01. to today)
  • ttt s cWeek The current week (last monday to today)
  • ttt s cMonth The current month (last 01. to today)

Also add to Sync-Server and Bot!

Caching

Cache reports for ttt s, expecially when using a sync server.

Optimize Server Sync Protocol

Until now a client can only request a full file list from the API, maybe it should be possible to only get a list for special devices or special day ranges.

Error when adding server sync in PHP 8

Fatal error: Uncaught Error: Undefined constant "FILTER_FLAG_HOST_REQUIRED" in /TaskTimeTerminate/core/Settings.php:315
Stack trace:
#0 /TaskTimeTerminate/core/Settings.php(348): Settings->{closure}('https://...')
#1 /TaskTimeTerminate/core/Settings.php(285): Settings->editSync('server', Object(JSONReader))
#2 /TaskTimeTerminate/core/Settings.php(29): Settings->sync(Array)

Sync

Multi device sync:

Each sync is either local path or a http url. Also each client needs an „unique“ name in its sync group (devices syncing their stats).

  1. Use a local directory to store all syncable „own“ datasets and also load other datasets from there.
    • local directory can the be synced via NextCould or other drive clients
  2. Hosted TTT sync server (docker image), all new tasks will be pushed there and
    clients can fetch them.
    • sync server should have basic web statistics
    • create sync group via web, get token for each client
    • register token, url, name in local client

The local client will get a column and a new arguments in stats view to filter tasks per device and show the device of each task.

Strange Windows Bug

Windows only bug

  1. Sometimes the input in the dialog is not taken. Therefore the dialogs opens a minute later again.
  2. Sometimes a task is counted twice, so the sum of durations will be doubled. Also in the JSON the task can found twice (with identical values).

Figure out what "sometimes" means and fix it!

Stats custom range

Allow to give a cusotom range for ttt s range 2020-01-11 2020-01-15.

Also allow a single day ttt s range 2020-01-11 and show a view like today, but for given day.

MiLog

Add an extension to export datasets per month in some sort of PHP-array-Syntax to use with MiLog.php.

Windows installation bundle

  • Linux
    • not needed, install.sh is enought
  • macOS
    • App from Automator.app to start recorder.php
  • Windows
    • TTT Source
    • PHP-GTK
    • PHP7.4
    • TTTd.exe (relative path)
    • ttt.bat (relative path)

TTTd.app PHP 8

The TTTd.app does not find PHP 8 and therefore does not start TTT with PHP 8.

Install.sh will reset config on update

The install.sh uses git checkout -- . to prevent merge conflicts, but this will also reset the config.json.

Remove config.json from repo? Manually select files to checkout?

Autocomplete socket unintended restart

The command ttt r seems to restart the autocomplete socket each time the command is executed, that should not happen.
Cause the socket's process runs fine.

Two dialogs at the same time

If the user uses the ttt r command and while the user types the background job opens another dialog, two dialogs are open.
Also the last (current task before dialog) will be logged twice. a) Lock the current.json or b) check for some file which indicates a opened dialog.

Telegram Bot

It would be nice to use TTT also on mobiles, a Telegram-Bot could be used. It should provide a CLI-like command system. So one could type /ttt s instead of ttt s.

Also a dialog to add tasks should be available, like the InTerminaDialog, but in a Telegram chat. If a task is completed the Bot should send a message, to notify the user.
The configuration should be the same as on the TTT-Desktop-Client. The Bot should run in a Docker-Container.

The Sync-Server then only provides user management system and basic stats. Also it should allow to edit tasks and manually create tasks.

Update notification

Show the user that an update is available in the CLI-Interface and allow user to start update.

Use the TTT-Sync. Server to get the current version, when doing API-Requests. (TTT-Server should check from GitHub)

Statusview

Add a view to cli, where one can see if the system is currently en-/ or disabled.
Also show the current task there: category, name, started, end.

ttt o,overview

    TTT is enabled/ disabled
    Your current Task is:
        Category: xxx
        Name: xxx
        Started: xxx
        Planned end: xxx
        Worked until now: xxx

Server Sync when offline

When the client is offline, all server request will fail, here the client should recognize this and wait until the client is online again.

If one is offline more than a day, it may be possible, that tasks would not be synced to the server.
Here the client should cache the tasks to sync them later.

Delete/ edit wrong tasks

#3 has to be finished before!

Make it possible to delete and/or edit wrong task ttt edit 2020-01-20 and get a guide through all tasks of this day.

Choose Task to edit:
<table ID; NAME; CATEGORY>
Which ID to edit: 
    Delete Task (y/n)?
       exit;
    For all upcoming, leave empty to remain unchanged.
    Give new name for name 'xxx' :
    List of categories:
        <list ID; CATEGORY>
    Give ID for new category 'xxx':
    Give new duration for '' (Format 1h2m):

Also ask to delete entries when deleting category.

Add ServerSynchronisation

Until now, only DirectorySynchronisation is fully implemented.

  • Fill class ServerStatsAccess with necessary code.
  • Also a Docker-Image providing the server has to be implemented.
    • Sync server should have basic web statistics
    • Create sync group via web, get token for each client

This issue covers the rest of #7 after release of version 0.9.3b ee43a1e

macOS "Touch Bar"

The dialog should display options in the touchbar (e.g. +10m, +30m, +1h or Autocomplete Items MyCat,MyTask,1h)

Self ending break

Until now there are two possibilities to have a break.
One may press the button Pause in the dialog, it will then open around one minute later again or
one may use ttt t and disable TTT until it is enabled again.

The idea is to improve the dialog when pressing Pause, s.t. TTT reads the input for time and opens the dialog
after the given amount of time again (and not one minute later).

Prepare for PHP 8

The cli and the dialog seem to work with PHP 8, only the autocomplete socket does not.

The problem will be that PHP 8 uses a Socket-Object instead of a resource. So one may not use is_resource in the code and check if the variable is a object of type Socket.

Stats sum

Display the sum of worked hours when displaying stats.

macOS „Today Widget“

Create an extension providing a macOS „Today Widget“. This widget should show some daily stats and the current task.

Communication between recorder process and widget can be done by a unix socket or a file (macOS FSEvents API).

Clicking on the widget should open a terminal running „ttt s && tttt o && read && exit“.

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.