Code Monkey home page Code Monkey logo

cmdtaskmanager's Introduction

cmdtaskmanager

cmdtaskmanager is a simple task manager.

Installation

curl -s https://raw.githubusercontent.com/obaranovskyi/cmdtaskmanager/main/install.sh | bash /dev/stdin

Adding a project

On top of the hierarchy stands the project, where you can include tasks.

Note: Tasks also might exist without a project, in case you want them to be for the general purpose.

To create a project, run the following command:

add-project 'Homework' -d 'Under this project, I do my homework.' -fd '2025-01-01'

-d, or --description - stands for the description
-fd, or --finish-date - stands for the finish date

Let's add one more:

add-project 'My Real Company' -d 'Here I keep the tasks related to my future company.'

This time we won't specify the finish date as there is no reason to do that in the current case.

Now we have projects, let's display them, with the following command:

display-project-list

In case you want to receive information only about some specific project run this command:

display-project 1

1 is the project id, that might be found in the first column of the general project table.

To remove the project run:

remove-project 2

Let's update the project info:

update-project 2 -n 'My New Real Company' -d 'Here I keep the tasks related to my current company.'

Note: You need to pass only the properties which you want to update.

Adding tasks

That is probably the most important part.

To create a task without a project just run the following command:

add-task 'Go to the store'

To create a task under the project:

add-task 'Clean up the room' -pi 1 -d 'No rush with this'

Now we have tasks, let's display them:

display-task-list

In case you want to display some specific task, run the following command:

display-task 2

2 is the task id, that might be found in the first column of the general task table.

Display tasks by search criteria

To show only project related tasks, run the following command:

display-task-list -pi 1

Where 1 is a project id

To show only tag related tasks, run:

display-task-list -tns 'important'

Note It's possible to search by multiple tag ids or names.

To search by title, run:

display-task-list -t 'make a'

To search by description, run:

display-task-list -d 'no'

Important It is possible to combine multiple search criteria.

Changing statuses

To display system available statuses:

display-status-list

To change the project status:

update-project 1 -si 2

1 is the project id
2 is the status id

It's possible to update the project using the status name:

update-project 1 -sn 'In Progress'

Now we can see the status was changed.

To change the task status

It's possible to change task status in a similar manner as was changed status for the project.

update-task 1 -si 2

This command will update the task status to 'In Progress'.

But a more appropriate way of changing the task status is to use the changing status-specific commands.

Here is the task status changing commands:

Set task status to 'Not Started':

reset-task 1

Set task status to 'In Progress':

start-task 1

Set task status to 'Completed':

complete-task 1

Set task status to 'Postponed':

postpone-task 1

Set task status to 'Removed':

remove-task 1

Adding comments

It's possible to add a comment to task:

add-comment 1 "It's better not to postpone this."
add-comment 1 "At least, I think so."

1 is a task id

We can display comments in the table:

display-comment-list 1

1 is a task id

or we can display task details and see comments there:

to remove the comment, run:

remove-comment 2

Adding Tags

To add a tag run:

add-tag 'important' -d 'Something that has to be done quickly.'
add-tag 'test'

To display all available tags:

display-tag-list

Adding tags to task

task-update 1 -tis 1 2

To check whether you've added the tags to the task, display task details:

display-task 1

Note It's possible to add tags using names instead of ids.

update-task 1 -tns 'important' 'test'

There is an even more straightforward way to add tags to tasks. When you're adding a new task, you can add tags. If the tag doesn't exist, it'll be automatically added:

add-task 'Make a coffee' -d 'But the last one for today.' -tns 'not important' 'later'

If you run display-tag-list, you'll see them on the list:

if you run display-task-list, you'll see a new task with the tags you've provided:

To remove tags from task, run this command:

update-task 1 -tns ''

To remove tag from the system:

remove-tag 2

Note: If some tasks used a tag, you would be notified to update the task first due to dependency.

Dependencies

  • We use rich to show everything nicely in the terminal.
  • We use sqlalchemy to store the data in the database.
  • We use pytz to work with the dates.

License

This project is licensed under the terms of the MIT license.

cmdtaskmanager's People

Contributors

obaranovskyi avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.