You are not logged in.

#1 2011-12-05 22:58:24

Wiki Admin
Registered: 2010-12-28
Posts: 163

Organism: extensible outliner+personal organizer (needs beta testers)

Organism is basically a simple outliner structured in a very modular way: the core is written in Python 2 (but should be easily adaptable to Python 3) and provides the backend for interacting with sqlite databases, where the data is stored.
The core also provides an API that can be used by 3 kinds of addons: extensions, interfaces and plugins.
Extensions are meant to extend core functionalities, and provide their own API: they can directly query the databases.
Interfaces are the addons that let the user directly interact with core's and extensions' API: currently only a wxPython interface is implemented. Interfaces cannot directly query the databases, they must make calls to the core or the extensions.
Plugins are for interfaces what extensions are for the core: they extend interface functionalities and cannot directly query the databases.

The various addons are currently distributed with 3 components (installation packages, but I decided not to use the word "package" since it conflicts with Python packages):
* the "main" component provides the core, a copy/paste extension, the wxPython interface and some basic plugins.
* the "organizer" component provides extensions and plugins that let the user define time scheduling rules for each database entry; alarms are raised when events take place, and they can be snoozed or dismissed, like the average calendar application.
* the "development" component provides some tools for developers and beta testers (currently only "print database tables" and "populate database")
Organism and its addons are released under GPLv3.

* organism:
* organism-organizer:
* organism-development:


* At the current state, plugins can add their own items to the interface's main menu, but by default they just append them at the bottom of the main entries, so the user needs to customize them in Organism's configuration file, which is located in ~/.config/organism/organism.conf. The location of the configuration file can be changed with the --config flag, all the available options are shown with the --help flag.
* Once you create a database, the current addon configuration is stored in it, so you won't be able to open it with a different combination of addons: this is done to prevent data corruption, since an extension may add some particular data that needs updating, and if the database is opened without that extension it may get corrupted. Of course The next release of Organism will give the ability to "update" the databases to support the new versions of the addons.
* At the moment only 3 schedule rules are implemented, but they are fairly easy to write and can be requested specifically.
* This post is currently by far the best piece of documentation about Organism (except the source itself), I'll try to catch up on that too ^^
* The next goal is releasing a stable 1.0.0 version, which means that only the most essential features are implemented, there's much room for improvement!

Beside wxpython, needed until the current interface is the only one available, Organism depends on 4 external Python modules I wrote during its development:
* python2-plural: a little module that returns the needed form of a string depending on one or more input variables.
* python2-loggingext: an extension to the logging module that lets the logger use different formatters for different log message levels.
* python2-texthistory: a simple undo/redo engine for plain text and wx.TextCtrl.
* python2-configfile: a class useful for dynamically parsing and writing configuration files, with support for subsections and more.
python2-texthistory and python2-configfile may even be tested separately, if somebody is interested in using them for other projects.

Organism is in pre-beta, which means that I'm still accepting minor feature requests before going beta and starting the real testing campaign: that's why I'm looking for people interested in the project who want to help testing it.
Beta testers should concentrate in particular in these fields:
* defects in reading/writing the configuration file
* defects in the database's undo/redo engine
* defects in item text editor's undo/redo engine
* defects in the organizer's management of timed item occurrences
Of course bugs can happen everywhere, they can be reported at and
Beta testers should use organism either by setting the logging level to "33" in the configuration file or by launching it with "--loglevel 33".

I'm also looking for somebody intersted in an artistic collaboration for creating an original icon, since currently Organism is using GTK theme icons only.

Thanks for reading smile

Last edited by kynikos (2013-01-25 15:02:30)


Board footer

Powered by FluxBB