a21cb8470bbe9c1106d9ea1ed059712a1c92be57
GOTASK
Tiny project aiming at creating a CLI task tracker in Golang
Purpose
- Practice Golang
- Keep track of tasks
Roadmap
- Add
- List all
- Progress
- Regress
- List by
Features
Add tasks
[user@host]$ gotask add "Publish code"
New task added to do @ id=4
List all tasks
[user@host]$ gotask list
+---------------------------------------------------------------------+
|id| Description | Status | CreatedAt | UpdatedAt |
|--|--------------|-------------|------------------|------------------|
| 1| Update doc | todo | 01-03-2026 09:23 | | # Never updated
| 2| Write code | doing | 04-03-2026 10:13 | 05-03-2026 17:45 | # Set in progress at UpdateAt
| 3| Write tests | done | 05-03-2026 11:34 | 01-04-2026 19:43 | # Done at UpdateAt
| 4| Publish code | todo | 01-04-2026 09:13 | |
+---------------------------------------------------------------------+
Mark progress
[user@host]$ gotask progress 4
[todo] task "Publish code" progress to [doing]
List tasks by status
[user@host]$ gotask list doing
+---------------------------------------------------------------------+
|id| Description | Status | CreatedAt | UpdatedAt |
|--|--------------|-------------|------------------|------------------|
| 2| Write code | doing | 04-03-2026 10:13 | 05-03-2026 17:45 |
| 4| Publish code | doing | 01-04-2026 09:13 | 01-04-2026 10:30 |
+---------------------------------------------------------------------+
Mark regress
[user@host]$ gotask regress 4
[doing] task "Publish code" regress to [todo]
Storing data
For convenience reasons, the data will be stored in a JSON file with the following structure.
{
"tasks": [
{
"id": 1,
"Description": "Update doc",
"Status": "todo",
"CreatedAt": 1772353380,
"UpdatedAt": -1
},
{
"id": 2,
"Description": "Write code",
"Status": "doing",
"CreatedAt": 1772615580,
"UpdatedAt": 1772729100
}
]
}
Description
Languages
Go
100%