blob: 6a398cd45b6d36ee3fa943516667aa73ece494d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
Task Time Tracker
=================
# notes
- Only one task may be active;
- The log will be a circular array. During app startup the array will be loaded from a csv file. The log array should have a fixed length. Each string in the array should also have fixed length. Loading and storing it to a file will be implemented using readline and writeline operations. In order for the log file to be CSV compatible, we must always use the same format when writing to the log array. Best approach is to use a function that enfores the CSV format. The log should be written to a file every 5 minutes (not set in stone), if required; such may be done using a `log_is_dirty` flag. A possible structure for the log entries is: {uint64_t timestamp; uint8_t action[16]; uint8_t task_name[MAX_TASK_NAME+1]; uint8_t notes[16]; }.
# to-do list
- [x] Include check on number of char bits;
- [x] Decide once for all if I'll be using uint8_t or char for strings: use char.
- [x] maybe rename to task-time-tracker?
- [x] Remove hash stuff;
- [x] Tasks should have a `modified_on` timestamp field;
- [ ] Allow two view modes: one to iew non-archived tasks; another to view archived tasks.
- [ ] To add a new task, create it and enter the task-name-edit mode. To edit, use the ACS_CKBOARD to show empty spaces and ACS_LARROW and ACS_RARROW to show continuation on horizontal direction.
- [ ] Status of task will allow to keep counting time even when the process gets terminated forcefully;
- [ ] Make sure task names don't include commas ',';
- [ ] Review code: char !uint8_t;
- [ ] Change task order (use task_t tmp_task + memcpy);
- [ ] Create task using keys: `c` and `C`;
- [ ] Delete task using keys: `d` and `D`;
- [ ] Change task name using keys: `F2`;
- [ ] Add/remove time using keys: `F3`;
- [ ] Add/remove time for any day of week;
- [ ] Toggle task visibility using keys: `v` and `V`; when pressed, all tasks are shown and hidden tasks are shown in a ghosty theme; Ruggin task cannot be hidden;
- [ ] Use TASK_STATUS enum [NONE, RUNNING, ARCHIVED];
- [ ] Clone (replicate) task using keys: `r` and `R`; If task is active, mark newly created task as inactive;
- [ ] Space invaders on konami code;
- [ ] Rethink keys;
- [ ] Make sure that only one task is running at each time;
|