Robert E. Coyle robertecoyle@hotmail.com
Sun, 11 Mar 2001 04:46:38 -0000

---------------------- multipart/mixed attachment
I found some time to work on a request tracking system and thought it
would be useful for the whups project.  I've attached the full source to
the system as I have so far.  It needs to live inside the horde directory
to work properly.

The version attached says it's licenced under the GPL, but I'd prefer to
release this source under a modern BSD licence if possible.  Dual licencing
would be fine, but if not I would at least like a notice somewhere that
people could contact me for my original version with a BSD licence (if you
decide to use this code for whups).

This is still a work in progress.  The major problem at the moment is that
there is no authentication so you are always logged in as user 1 (me in the
sample database included).  I'm not sure of the best way to integrate this
with the horde authentication modules.  It's slightly complicated because
for a publically available installation, anyone can add themselves as a user
and a 'mail me my password' feature needs to be supported.  People may also
want to run private installations, in which case the passwords should be
stored encrypted and only the administrator should be able to add users.

How to get it running:

Untar the source under the horde directory (having first removed the original
whups directory).  Set up an sql database (works with mysql, all others untested)
and put in the whups/db_defs.sql file.  To get a working test database, insert
the whups/db_sample.sql file.  Modify the dsn entry in the whups/conf/conf.php
file.  It should now work.

The way it works:

I (while talking with some other people) decided that a request tracker
should be able to handle different types of requests.  For example, bugzilla
works very well for bugs, but can't handle requests such as order tracking
and other things useful in a project management system.  Each ticket in 
whups therefore has a type.  Each type has a set of states which are definable
by the administrator.  For example bugs could have 'unconfirmed', 'new',
'can't reproduce' and orders could have 'new', 'on order' or 'out of stock'.

These states have a category which is one of 'unconfirmed', 'new', 'assigned'
or 'resolved'.  This makes things like making dropdown boxes and handling CVS
log commands easier.  For example, when assigning a ticket, the new state
dropdown list has all the available states in the assigned category.

Every type also has a set of priorities, which is simply a numeric value that
has a name and description.  No constraints are made on the number or values
of the priorities, except that each type must have at least one priority.

Each ticket has a requester, an owner, a type, a current state, a priority,
a module and some comments.  Every ticket has at least one comment.  The module
is one from a set defined arbitrarily by the whups administrator.  This can be
used for tracking bugs on different parts of a package, or maybe tracking orders
from different suppliers.  There maybe should be a constraint on which modules
are allowed for a given ticket type, but that's not enforced currently.

Each comment may have one or more attachments, so that for example patch files
that fix a bug can be attached to a ticket.  This isn't implemented yet.

Each ticket has a set of listeners who get notified when something happens to
the ticket.  This works, but there is currently no way to add yourself to the
listeners list of a ticket.

How I want the searching to work:

I'm always horrified by the number of boxes on the bugzilla front page.  I
therefore want to be able to build a search incrementally, each step showing
the results of the current search.  The user should then be able to save the
current search so that there is a single link to get back to that set of results.

This is also necessary, as it makes no sence to be able to specify a state in
the search unless you have first specified the type to search on.  In the
current code, you get a new set of search options when you select a specific
type, but you can't yet save the search.  This is only because there isn't a 
'save this search' button; there is a table for saved searches and the sample
database uses this.

UI Design:

Green boxes are active (ie. you can perform actions in them), blue boxes
display information.  That's it, really.

Anyway, I've been typing for too long now.  Please send me your comments.


Jone's Law:
The man who smiles when things go wrong has thought of someone to blame it on.

---------------------- multipart/mixed attachment
A non-text attachment was scrubbed...
Name: whups.tar.gz
Type: application/x-gzip
Size: 22493 bytes
Desc: not available
Url : http://lists.horde.org/archives/whups/attachments/be4a62ec/whups.tar.gz

---------------------- multipart/mixed attachment--