diff options
author | cel 🌸 <cel@blos.sm> | 2024-08-04 18:26:38 +0100 |
---|---|---|
committer | cel 🌸 <cel@blos.sm> | 2024-08-04 18:26:38 +0100 |
commit | c3fde18b74fa967a02b3a922a9a3554b80207b06 (patch) | |
tree | e2d822189e97c8600b5113490e6dc921f3398561 /README.md | |
download | fj-c3fde18b74fa967a02b3a922a9a3554b80207b06.tar.gz fj-c3fde18b74fa967a02b3a922a9a3554b80207b06.tar.bz2 fj-c3fde18b74fa967a02b3a922a9a3554b80207b06.zip |
WIP: db
Diffstat (limited to '')
-rw-r--r-- | README.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..9a89f53 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# feijao + +tasks/streaks tracker + +``` +fj: lists due tasks/streaks in order of due-time priority + fj [--all]: includes all currently active tasks + fj [--archived]: includes archived tasks + fj [--category <category_id>]: filter by category (can have multiple) +fj <item_id>: marks task as done +fj new <item_id> <cron>: opens new item config in editor. +fj undo [<task_id>]: undo last mark (default to last item) +fj log [--active] [--category <category_id>] [<task_id>]: shows heatmap and history information (includes archived tasks unless marked as active only) +fj log modify [--archived] [--category <category_id>] [<task_id>]: opens history in editor to modify (add and remove/edit). defaults to all active tasks. paged to 100 latest. +fj modify <task_id>: opens item config file in editor +fj archive <task_id>: archive item (delete but keep history), can be reactivated in future +fj unarchive <task_id>: unarchive item +fj delete <task_id>: marks as deleted, need to go to server to properly delete +fj done <task_id>: mark task done +fj list: lists due tasks +``` + +[ ] add tombstones + +- uses cron syntax to mark tasks and when they reset. +- tasks reset at the end of the day (set by config) before when they are next due. if there are multiple times in a day for the task, that task can be marked multiple times. +- can set reminders per task if needed. +- item_id must be unique, but can be modified. not primary key. +- uses naive datetime +- if goals are changed, keep old goal for old streaks + +offline support (later): +- server state synced to device whenever command used, so offline +- if not connected to internet, modifications are cached on device + +## database + +tasks: id, name, cron, archived, categories + name should be unique +log: id, task_id (foreign), datetime +reminders: id, task_id, time_delta + +alternative: + +tasks + reminders in config file +log is kv store with key = task id, value = list of timestamps |