On Wed, Dec 12, 2001 at 10:04:17PM -0600, Patrick K. O'Brien wrote:
> I'm evaluating Webware as a possible tool to use in creating a web-based
> system for managing the memberships of a couple of non-profit associations.
> I was hoping you folks might be able to help inform my decision.
> What I want is for board members to be able to manage their membership data
> via a website. For example, some information is public, much of it is
> private and only available to select individuals. Members receive mailings
> and email notifications of upcoming events (if they want to receive these.)
> Members can register for events and event attendance is tracked. Members pay
> dues and receive renewal notifications. The typical membership stuff. Plus a
> little content management stuff as well.
> How difficult would this be with Webware? What specific things should I look
> for? My background is in database applications, so I'm not too worried about
> that part of things. My preferences for persistent data would be ZODB,
> PostgreSQL or MySQL. There aren't a lot of transactions in this kind of a
> system. I'm also looking at Zope, but don't see any examples of anyone doing
> this kind of thing with Zope. Is anyone doing this kind of thing with
I don't know of any similar project in particular, but it sounds like
the kind of application Webware was designed for. Lots of little
well-defined objects with interactions, a web UI... all written in Python.
Of course, the same can be said about Zope.
Will this be an open-source or closed-source project? If you and your
clients were willing to do it open source, you could split the project
between organization-specific and generic parts, and simultaneously
create your application and also some generic membership-management,
event-scheduling and individualized mail-announcemnent modules for
Python/Webware which would be useful to others too. (And thus you might
also entice others to do a bit of your work!)
For storage, you can go with either plain MySQL/PostgreSQL, MiddleKit
over MySQL/PostgreSQL, or ZODB. ZODB works best where there are either
a low frequency of writes, or where most of the writes are adding records
rather than modifying them in place. It sounds like it would be fine
for your application.
If you use Zope, back up the database file frequently. There have been
occasional reports of database corruption, and it's also possible to
mess up Zope's permission settings and lock yourself out of the
database. In either case, restoring yesterday's backup is quick, easy,
and may be the only way to recover the data. Many Zopistas store only
their program code in ZODB, and keep their client data in a SQL db.
I'm not sure how much these limitations apply to standalone ZODB.
Use MiddleKit if you find it convenient, otherwise just use
MySQLdb/pygresql directly. I'm not sure if the PostgreSQL interface to
MiddleKit is usable yet; the MySQL interface has been around longer.
MiddleKit is still ironing out its initial set of bugs, so I wouldn't
call it "mature" yet. Good to use in development, but don't bet the
farm on it without providing yourself a way out in case you run into a
bug that affects your application.
UserKit may be able to handle your board members once you provide the
authentication. If not, see the wiki discussion at
where we're trying to design a more extensible user-management
framework. It sounds like you might have two or three tiers of
privileges (if members are allowed to modify their profile online), so
for now you'd have to manage the groups and permissions yourself.
The content management (uploading files and editing them) you'd have to
write yourself in Python. Zope comes with more content-management features out
of the box... if you like Zope's user interface. There's also a wiki
discussion about a possible future document management system for Webware at
The other parts of the wiki which will give an idea
where Webware is going and what ppl want to do with it
I gotta sneak in a plug for Cheetah, since I'm on the development team.
It's a string template system that works with Webware. Good for
generating your HTML output.
There's also FunFormKit (3rd party) and TaskKit (comes with Webware)
that may be useful for designing your forms and scheduling automatic
SkunkWeb is another Python web application server that may be worth
considering. It's modular like Webware but unlike Zope.
-Mike (Iron) Orr, iron@... (if mail problems: mso@...)
http://iron.cx/ English * Esperanto * Russkiy * Deutsch * Espan~ol