Is there any interest in working on an application?

Ron Longo ron.longo at cox.net
Wed Jul 16 12:00:43 EDT 2008


Hello,

I have an python application which I've been developing for several years (off and on, mostly off for lack of time) which I'm considering putting up to open source if I can find other developers interested in contributing.

The application is a web publisher/information outliner.  (See an example of a beta here:  http://members.cox.net/ronpro/welcome.html where I test my ability to generate an interactive tree for the data in an outline.)

The application is 100% Python.  The gui is written using Tkinter and Tix -- I'm definitely open to other libraries for the GUI.  The app supports unicode in the outlines.  There's a spell-checker plugin (complements of the pyenchant project).  The application is written on top of an application framework and plugin framework both of which I developed myself.  Much of the application is actually plugins so it's very modular.  For screen shots of the app so far see: http://members.cox.net/ronpro/scrnCap1.JPG and http://members.cox.net/ronpro/scrnCap2.JPG

The development would probably be done through SourceForge.

I'm in the process of documenting the current design in UML class diagrams using the free version of Visual Paradigm (if another tool is suggested we could switch).

My motive:  I'm a research scientist.  My prefered method to record, review, edit and organize my notes is within an outline (rather than a flat notebook format used by most researchers).  The ability to consider new ideas can be as easy as moving items around in the outline.  I've used many commercial programs in the past but all have had some limitation or another.  Most don't support unicode (I need unicode characters to record mathematical and logical formulae).  Those that do produce html don't produce the side-by-side view of an interactive tree (able to expand or collapse nodes) beside the actual on-screen notes.  The interactive tree is a necessity for me with over 2000 entries in my largest outline and growing fast.

Design Philosophy:  I've attempted to keep to the following design philosophy (prioritized by order).
- User Experience -- everything should be easy for the user.
- OO, Maximize modularity, minimize cross dependence.
  (e.g. The Application framework, plugin framework and word processor know nothing about the problem domain and nothing about the other modules in the application).
- KISS, I prefer simple straightforward code over speedy "tricks".  If it's hard to read or understand I'll probably hate it.
- Minimize 3rd party modules in the core application.  I know 3rd party libs can make it easier to develop and this would seem to violate KISS.  However, with User Experience being higher priority, the less there is for a user to install the easier.  Best case, the user installs Python and s/he's ready to go.  I don't mind requiring 3rd party libs for most plugins.  My take on this is here:
   - If it's part of the core distribution (the core application or a plugin that's part of the main distribution), do everything possible to avoid 3rd party libs.
   - For plugins distributed separately from the application installer, the plugin must check for the required libs upon loading and exit gracefully if the lib is not present (at most display a dialog stating that the required lib is not installed.)
- If at all possible, provide unit test with each module (including plugins)

Future Direction:
- Some of the features in the menus and on the toolbars are not yet implemented.
   (e.g. find, search/replace, bulletized and numbered lists, tables)
- The content of any tree entry is displayed in the content pane to the right of the outline.  Right now the only supported content is formatted text in a word processor (actually a glorified Text widget).  The Text widget is part of the core app.  I want this widget to be turned into a plugin so that other kinds of content are possible with other content editor plugins.  The main app would then select and display the appropriate content editor for a given kind of data.
- Currently, cutting and pasting is possible, however cutting and pasing formatted text is only possible within the application.  Want to support cutting and pasing stylized text with the system clipboard and other applications (word, star office, etc.)
- Import export other formats (importers and exporters are already plugins).  We just need to write more of them.
- Support multiple views of a single outline so we can view different parts of the outline simultaneously.
- Support cutting and pasting, dragging and dropping across different outlines.
- Customizable appearance for HTML output.
- Anything else the development group or users can think of.


If you're interested in more information or trying out this app (note that it's very immature and probably only worthy of being called an alpa) please don't hesitate to contact me.

Thanks for reading,
Ron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080716/f8eccdda/attachment.html>


More information about the Python-list mailing list