RubyGems Navigation menu

syc-task 0.0.7

Simple task organizer

syctask can be used to create, plan, prioritize and schedule tasks.

Install

The application can be installed with

$ gem install syc-task

Usage

syctask provides basic task organizer functions as create, update, list and complete a task. Additional functions are to plan tasks you want to accomplish today. If you are not sure in which sequence to conduct the task you can prioritize them with a pair wise comparisson. You can time tasks with start and stop and you can finally extract tasks from a minutes of meetings file. The schedule task will print a graphical timeline of the working day assigning the planned tasks to the timeline. Busy times are marked red. Meetings are listed with associated tasks that are assigned to the meetings.

Create tasks with new

Create a new task in the default task directory ~/.tasks

$ syctask new "My first task"

Provide a description

$ syctask new "My first task" --description "Explanation of my first task"

Schedule a task with a follow-up and due date

$ syctask new "My first task" --follow-up "2013-02-25" --due "2013-03-11"

Set a proirity for a task

$ syctask new "My first task" --prio 3

Prompt for task input

$ syctask new

will prompt for task titles. Ctrl-D will end input.

Except for –description you can also provide short forms for the options.

Plan tasks

The plan command will print tasks and prompts whether to (a)dd or (s)kip the task. If (q)uit is selected the tasks already added will be add to the today’s task list. If ©omplete is selected the complete task will be printed and the user will be prompted again for adding the task.

Invoke plan without filter

$ syctask plan
1 - My first task
(a)dd, (c)omplete, (s)kip, (q)uit? a
Duration (1 = 15 minutes, return 30 minutes): 3
--> 1 task(s) planned

Invoke plan with a filter

$ syctask plan --id "1,3,5,8"
1 - My first task
(a)dd, (c)omplete, (s)kip, (q)uit?

Move tasks to another days plan

$ syctask plan today --move tomorrow --id 3,5

This will move the tasks with ID 3 and 5 from the today’s plan to the tomorrow’s plan

Prioritize tasks

Planned tasks can be prioritized in a pair wise comparisson. So each task is compared to all other tasks. The task with the highest priority will bubble on top followed by the task with the next highest priority and so on.

$ syctask prio
 1: My first task
 2: My second task
Task 1 has (h)igher or (l)ower priority, or (q)uit: h
 1: My first task
 2: My third task
Task 1 has (h)igher or (l)ower priority, or (q)uit: l
 1: My third task
 2: My fourth task
Task 1 has (h)igher or (l)ower priority, or (q)uit: h
...

syctask schedule will then print tasks as follows

Tasks
-----
0: 10 - My fourth task
1:  7 - My third task
2:  3 - My first task
3:  9 - My second task 
...

Instead of conducting pairwise comparisson the order of the tasks in the plan can be specified with the -o flag

$ syctask plan -o 7,3,10,9

The plan or schedule command will print the tasks in the specified order

Tasks
-----
0:  7 - My third task
1:  3 - My first task
2: 10 - My fourth task
3:  9 - My second task

If only a part of the tasks is provided the rest of the tasks is appended to the end of the task plan.

Create schedule

The schedule command will print a graphical schedule with assigning the tasks added with plan.

Create a schedule with working time from 8a.m. to 6p.m. and meetings between 9a.m. and 9.30a.m. and 1p.m. and 2.45p.m.

$ syctask schedule -w "8:00-18:00" -b "9:00-9:30,13:00-14:45"

Add titles to the meetings

$ syctask schedule -m "Project status,Management meeting"

The output will be

Meetings
--------
A - Project status
B - Management meeting

    A               B
xxx-///-|---|---|---///////-|---|---|---|
8   9  10  11  12  13  14  15  16  17  18
1

Tasks
-----
0 - 1: My first task

Adding a task to a meeting

$ syctask schedule -a "A:0"

will print

Meetings
--------
A - Project status
    1 - My first task
B - Management meeting

    A               B
----///-|---|---|---///////-|---|---|---|
8   9  10  11  12  13  14  15  16  17  18

Tasks
-----
0: 1 - My first task

List tasks

List tasks that are not marked as done in short form

$ syctask list

List all tasks in long form

$ syctask list --all --complete

Search tasks that match a pattern

$ syctask list --id "<10" --follow_up ">2013-02-25" --title "My \w task"

Update tasks

Except for title and id all values can be updated. Note and tags are not overridden rather supplemented with the update value.

Update task with ID 1 and provide some informative note

$ syctask update 1 --note "Some explanation about the progress on the task"

Complete tasks

Complete the task with ID 1 and provide a final note

$ syctask done 1 --note "Finalize my first task"

Delete tasks

Delete tasks with ID 1,3 and 5 from the default task directory

$ syctask delete --id 1,3,5

Delete tasks with ID 8 and 12 from the planned tasks of today. The tasks are only removed from the planned tasks and not physically deleted.

$ syctask delete --plan today --id 8,12

Task directory and project directory

The global options –taskdir and –project determine where the command finds or creates the tasks. The default task directory is ~/.tasks, so if no task directory is specified all commands obtain tasks from or create tasks in ~/.tasks. If a project is specified the tasks will be saved to or obtained from the task directories subdirectory specified with the –project flag.

--taskdir  --project   Tasks in
    -           -      default_task_dir
    x           -      task_dir
    -           x      default_task_dir/project
    x           x      task_dir/project

In the table the relation of commands to –taskdir and –project are listed.

Command  --taskdir  --project  Comment
delete        x          x     deletes the tasks in taskdir/project 
done          x          x     marks tasks in taskdir/project as done
help          -          -          
list          x          x     lists tasks in taskdir/project
new           x          x     creates tasks in taskdir/project
plan          x          x     retrieves tasks to plan from taskdir/projekt
prio          -          -     input to prio are planned tasks (see plan)
scan          x          x     creates scanned tasks in taskdir/project
schedule      -          -     schedules the planned tasks (see plan)
start         -          -     starts task from planned tasks (see plan)
stop          -          -     stops task from planned task
update        x          x     updates task in taskdir/project

Files

  • Task files

The tasks are named ID.task where ID is any Integer as 10.task. The files are saved as YAML files and can be edited directly.

  • Planned tasks files

The planned tasks are save to YYYY-MM-DD_planned_tasks in the default task directory. Each task is saved with the tasks directory and the ID.

  • Schedule files

The schedule is saved to YYYY-MM-DD_schedule in the default task directory. The files are saved as YAML files and can be changed manually.

Working with syctask

To work with syctask and get the most out of it there is to follow a certain process.

Creating a schedule

View tasks

In the morning before I start to work I scan my tasks with syctask list to get an overview of my open tasks.

$ syctask list

Plan tasks

Next I start the planning phase with syctask plan. If I have a specific schedule for the day I will filter for the respective tasks

$ syctask plan

Prioritize tasks (optionally)

If I want to process the tasks in a specific sequence I prioritize the tasks with

$ syctask prio

Create schedule

I create a schedule with my working hours and meetings that have been scheduled with

$ syctask -w "8:00-18:00" -b "9:00-10:00,14:30-16:00" -m "Team,Status"

Create an agenda

I assign the topics I want to discuss in the meetings to the meetings with

syctask schedule -a "A:1,3,6;B:3,5"

Start a task

To begin I start the first task in the schedule with syctask start 0 (where 0 is the sequence of the planned tasks, the ID is different e.g. 23)

$ syctask start 0

End a task

To end the task I invoke

$ syctask stop

This will stop the last started task

Complete a task

When the task is done I call

$ syctask done 23

Attachements

  • E-mails

If an e-mail creates a task I create a new task with syctask new title_of_task. The subject of the e-mail I prepend with the ID and move the e-mail to a open topics directory.

  • Files

If I create files in the course of a task I create a folder in the task directory with the ID and save the files in this directory. If there is an existing directory I link to the file from the ID directory

Supported platform

syc-task has been tested with 1.9.3

Add TAB-completion to syctask

To activate bash’s TAB-completion following lines have to be added to ~/.bashrc

complete -F get_syctask_commands syctask

function get_syctask_commands
{
  if [ -z $2 ] ; then
    COMPREPLY=(`syctask help -c`)
  else
    COMPREPLY=(`syctask help -c $2`)
  fi
}

After ~/.bashrc has been updated the shell session has to be restarted with

$ source ~/.bashrc

Now syctask followed by TAB TAB will print

$ syctask <TAB><TAB>
delete done list plan scan stop _doc help new prio schedule start update

To complete a command we can type

$ syctask sch<TAB>

which will complete to

$ syctask schedule

Output to Printer

To print syctask’s output to a printer pipe the command to lpr

$ syctask schedule | lpr

This will print the schedule to the default printer.

To determine all available printer lpstat can be used with the lpstat -a command

$ lpstat -a
Canon-LBP6650-3470 accepting requests since Sat 16 Mar 2013 04:26:15 PM CET
Dell-B1160w-Mono accepting requests since Sat 16 Mar 2013 04:27:45 PM CET

To print to Dell-B1160w-Mono the following command can be used

$ syctask schedule | lpr -P Dell-B1160w-Mono

Notes

Version 0.0.1 new, update, list and done is implemented.

Version 0.0.4

  • delete: deleting tasks or remove tasks from a task plan

  • plan: plan tasks and add them to the task plan

  • schedule: create a schedule with work and busy time and assign the tasks from the task plan to the free times

Version 0.0.6

  • start: start a task and track the lead time

  • stop: stop the tracking and print the lead time of the task

  • start, stop: the task is logged in the ~/.tasks/task.log file when added and when stopped

  • prio: prioritize tasks in the task plan, that is specifying the sequence in that the tasks should be conducted

  • plan: –move flag added to move tasks from the specified plan to another days task plan

  • update, new: when a follow-up or a due date is provided the task is added to the provided dates task plan. If both dates are set the task is added to both dates task plans

Version 0.0.7

  • updated rdoc

The test files live in the folder test and start with test_.

There is a rake file available to run all tests

$ rake test

License

syc-task is released under the MIT License

Links

Gemfile:
= Copy to clipboard Copied!

install:
=

Versions:

  1. 0.4.2 - October 08, 2016 (51.5 KB)
  2. 0.3.2 - September 11, 2016 (49.5 KB)
  3. 0.3.1 - September 11, 2016 (48.5 KB)
  4. 0.2.1 - September 03, 2016 (47 KB)
  5. 0.2.0 - June 13, 2014 (45 KB)
  6. 0.0.7 - March 23, 2013 (28.5 KB)
Show all versions (12 total)

Runtime Dependencies (2):

gli = 2.5.4
rainbow >= 0

Development Dependencies (3):

aruba >= 0
rake >= 0
rdoc >= 0

Owners:

Authors:

  • Pierre Sugar

SHA 256 checksum:

809e8c790b420bec02626aa843a583912f0f80d6840eaa15f8a4fbb3b22e496e

Total downloads 28,940

For this version 2,817

Licenses:

N/A

Required Ruby Version: None

Links: