gishdo

get ish done


Keywords
pomodoro, gtd
License
WTFPL
Install
npm install gishdo@0.1.7

Documentation

GISHDO

Build Status Coverage Status npm version

Gishdo /Gish-due/, is will be a GTD app with pomodoro tendencies. It has will have 2 interfaces; a command line tool which is my preference, and a SPA if you're into that sort of thing.

Tasks are discrete actions with measurable outcomes. They can be grouped into Projects, which comes in handy as your Task list grows. Sprints are groups of Tasks that are meant to be completed sequentially (in the order specified per Sprint).

Running a Sprint starts a countdown timer on the first task, followed by a break, followed by more time on the task, etc, until the task is marked as completed. When a task is finished, gishdo tracks the total time spent working on the Task and starts the next cycle.

Install, Setup, and GO!

  $ npm install gishdo
  $ gishdo config
  $ gishdo add task -i 'create my first task'
  $ gishdo get task -mt 'create my first task'
  $ gishdo complete task -t 'create my first task'

Configuration

Gishdo is designed to be used on multi-user systems. The per-user configuration file is stored in $HOME/.gishdo/config.json. You can edit the file by hand or use the command gishdo config to change gishdo's settings. The default config.json lives in the gishdo lib folder, appropriately name default.config.json

Options

Database

There are currently 2 database drivers:

  1. Sqlite
  2. Redis

With 2 more on the way eventually:

  1. MySql
  2. Mongodb

The default database driver is sqlite. This allows gishdo to be run out of the box with 0 external dependencies and is definitely fast enough. If you would like to use an external database server you can set the options in $HOME/.gisdo/config.json or with gishdo config.

Things to do differently on this, the 2nd iteration:

  1. use better-sqlite instead of sequelize ( in fact, don't use any ORMs )
  2. add the driver funcitonality
  3. add the configuration functionality
  4. breakout commands into modules the export options and handlers.
  5. rename get -> ls and add an rm command. Also create an alias from get -> ls.
  6. all database operations must be exported by each driver module ( the interface must be identical)