gtd/README.md
2013-09-23 23:24:11 -05:00

70 lines
3.2 KiB
Markdown

# Jonathan Bernard's Getting Things Done implementation.
This is my adaptation of the Getting Things Done system by David Allen. There
are a lot of tools that adapt his system for various digital platforms, but
most of them move away from the folder-based system he created. They try to
create new systems based on the core principles of the method outlined in
[*Getting Things Done*][book], but I was unable to find a system that followed
the details of his method. I do not think there is anything wrong with
reimagining the system based on the core principles. David Allen advocates that
in the book himself. Still, I was very attracted to the folder-based
implementation that he descibes; I only wanted to use digital folders and files
instead of physical folders and pages.
## History and Motivation
My method initially started as a simple collection of folders, intended to
mirror the physical system. As I used this I noticed some common use patterns
that would benefit from an automated tool. In particular, I wanted to have the
system walk my through the *process* phase. It was too easy for me to forget
some of the important principles of this phase: immediately doing anything that
could be done in 5 minutes or less, identifying the next action for an item,
and sorting the action correctly. Out of this the [command-line tool][cli] was
born.
As I started using the system for everything I started desiring to have some
way to publish my plans (or at least some contexts of my plans, like work).
This lead me to implement a [REST API][servlet] that interfaced with the
repository (still just files) so that I could easily embed this information
in a web page, or allow controlled access to the system from a client
application.
## How It Works
*TODO*
## Code Index
### com.jdblabs.gtd
[Item](http://jdbernard.github.io/gtd/doc/src/main/com/jdblabs/gtd/Item.groovy.html)
: One item in the GTD system (a *next action* for example). This class is a
wrapper around the File to make it easier to work programatically with GTD
items.
[PropertyHelp](http://jdbernard.github.io/gtd/doc/src/main/com/jdblabs/gtd/PropertyHelp.groovy.html)
: Simple serialization support for item properties. Used to read and write
properties from an item file.
[Util](http://jdbernard.github.io/gtd/doc/src/main/com/jdblabs/gtd/Util.groovy.html)
: Utility methods common to this implementation of the Getting Things Done
method.
### com.jdblabs.gtd.cli
[GTDCLI][cli]
: Command-line interface to the GTD repository. The repository organization
is intended to be simple enough that standard UNIX command-line tools are
sufficient, but it is useful to add some specific commands to walk you
through the processing phase or manage duplicated entries (when tracking an
item in a next-actions context and a project folder, for example).
### com.jdblabs.gts.servlet
[GTDServlet][servlet]
: Standard Java servlet to expose the repository via
[book]: https://secure.davidco.com/store/catalog/GETTING-THINGS-DONE-PAPERBACK-p-16175.php
[cli]: http://jdbernard.github.io/gtd/doc/src/main/com/jdblabs/gtd/cli/GTDCLI.groovy.html
[servlet]: http://jdbernard.github.io/gtd/doc/src/main/com/jdblabs/gtd/servlet/GTDServlet.groovy.html