aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@blos.sm>2024-08-04 18:26:38 +0100
committerLibravatar cel 🌸 <cel@blos.sm>2024-08-04 18:26:38 +0100
commitc3fde18b74fa967a02b3a922a9a3554b80207b06 (patch)
treee2d822189e97c8600b5113490e6dc921f3398561 /README.md
downloadfj-c3fde18b74fa967a02b3a922a9a3554b80207b06.tar.gz
fj-c3fde18b74fa967a02b3a922a9a3554b80207b06.tar.bz2
fj-c3fde18b74fa967a02b3a922a9a3554b80207b06.zip
WIP: db
Diffstat (limited to 'README.md')
-rw-r--r--README.md46
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