Docs: Updated project design

This commit is contained in:
Paul Beckingham 2016-03-19 17:41:00 -04:00
parent d94c577fe7
commit 083810e50c

View file

@ -1,7 +1,7 @@
Timewarrior Project
===================
Timewarrior is a program that records tagged time blocks that represent tracked
time. This data is then used to create reports that shwo how time was spent.
time. This data is then used to create reports that show how that time was spent.
To make this task easier, and more useful, Timewarrior can access holidays, a
pre-defined working schedule, and support flexible time/date specifications,
@ -30,7 +30,7 @@ Non-Goals
---------
- Completely independent from Taskwarrior, Taskserver, Tasksh.
- No cloud support, no sync support, all data is local. Tracked time is
sensitive personal data and wll not be transmitted.
sensitive personal data and will not be transmitted.
- No explicit multi-user support, although using tags to track individuals is
possible.
- There is no hook system as Timewarrior is a data sink, not a data source.
@ -44,7 +44,7 @@ be a single unquoted word, or a quoted string if it includes spaces.
A tag may be used without being defined, but if a tag is defined, then it may
have associated metadata, such as a start date representing the first date on
which it may be used, or an end date, when it expires. A tag may have a budget,
which it may be used, and an end date, when it expires. A tag may have a budget,
which is the maximum trackable time for a period.
An interval may have multiple tags associated with it, but the tags apply to the
@ -89,13 +89,18 @@ The command set may include:
help Show help text
x Run extension 'x'
There will be built-in commands, and an extensions mechanism that allows reports
to be added as extensions, while being handled as though they were built-ins.
Undo
----
All commands than change configuration or data need to be logged as-is in the
undo.data file, so that an 'undo' command can later rewind the changes.
All commands that change configuration or data need to be logged as-is in the
undo.data file, so that an 'undo' command can later rewind the changes properly.
All undo will happen at the command level, not the delta level.
All undo will happen at the command level, not the delta level. That means if
one command results in three changes, a single 'undo' command will revert the
three changes associated with the one command.
Extensions
@ -115,8 +120,6 @@ A simple extension mechanism allows custom reports to be written and shared.
c) yesterday 540-600 tag1, 600-660 tag1 tag2, 660-1020 tag1 # explicit overlap
Stating 'track yesterday 10am - 11am tag2' sounds imperative, thus overriding any existing tags in that interval. Perhaps a 'merge' keyword could be added to combined the results (track yesterday 10am - 11am tag2 merge)?
- Need an undo feature.
- Intervals for different tags may overlap. We multitask.
- Need syntax to adjust any recorded data.