Version 0.0.2 uses Log4j for logging, hence the necessity to configure
JavaMail is used to send e-mail notifications to the users whose
e-mail is known to Saeed about new documents and finished documents
(signed by all recipients).
UserManager now uses User beans more actively, instead of trying
to get the info right from the database.
Version 0.0.3 is a bugfix release. It fixes the bug with the
insertion of new elements and the some productivity problems.
1. General Information
Saeed is (will be) a document management system. It is written in
Java and uses a number of Java-related technologies, like JDBC,
servlets, JSP, EJB, etc.
During the development the following tools are used:
Sun JDK 1.3
Sun J2EE SDK 1.2.1,
JBoss 2.4.1+Tomcat 3.2.3,
Presumably, it should work with any other RDBMS (in the future it will
require BLOB support) and with any EJB/servlet containers. Though, if
your EJB and servlet containers run under separate JVMs, some tuning
may be necessary.
IMPORTANT: If you use other EJB/servlet containers, make sure that
you have log4j and JavaMail installed and configured. They are
included in the JBoss package.
Also Saeed uses a taglib called Ejbtags shipped for free by
The project was named after my old brave black permanently-wounded
tomcat. `Saeed' means `Lucky' in
Arab and this is also the name of a character in a great western-like
movie (or, rather, eastern) `The White Sun of the Desert'.
If you don't like the name, you may call it `The System for Automatic
Emission of Electronic Documents' :)
The project's download page is http://sourceforge.net/projects/saeed
The package named
`saeed' is the Russian version and
`esaeed' is the English one.
The CVS repository for Saeed is http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/saeed/
This version is the first preliminary pre-release of the draft
alpha-version :) The Saeed project was started on Sourceforge.net on
Every DOCUMENT is a container that includes any number of elements
(see below). A document has some attributes: name, author's ID,
creation date, task (see below), recipient's ID, route (see below),
due date (see below). A document may be in one of the following
states: draft, sent, signed by all recipients.
A draft document is a document in the work, being composed.
A sent document is a document which was signed by it's author, but not
by the recipient.
A document signed by all recipients is finished, it may be moved to
ELEMENTS are homogeneous pieces of information -- text, html, images,
rtf and other files. (Currently only
text/html are supported). Elements also have attributes:
creation date, author's ID, MIME type, etc.
TASK is a group of documents which relate to one business
procedure. For example, all documents concerning a preparation of a
certain contract with `ACME Corp', might go to the task `ACME:
Cont.#33'. Tasks may be created by any user who is allowed
to. (Currently tasks are not implemented.)
ROUTE is a sequence of recipients who should receive the document
after it was signed by the previous users. Route can include not only
user IDs, but also group IDs.
DUE DATE is the date by which the document must be signed by all
RECIPIENT is a user or a group, who has to sign the
document. Recipient can add elements to the document, should he
consider it necessary.
DOCUMENT CREATION contains two steps: first, you have to create
the document itself, supply the necessary attributes and save
it. Second, you add elements (if necessary) and sign the document.
The documents appear in one of folders: `Incoming', `Drafts',
`Watched' and `Signed'. Incoming documents are those addressed to
you. You are responsible for signing them in time. Drafts are,
obviously, your unfinished documents. Watched documents are those that
were composed by you and sent (signed). They may be of one of three
kinds: finished (signed by all recipients), which are marked with red,
outdated (not signed though the time is coming) which are marked in
red, and just pending. Finished documents (green ones) may be moved to
archive (in this version -- deleted).
When a new document is created, a notification may be sent to it's
recipients, if their e-mail is shown in the users' database.
- Download saeed or retrieve the sources from CVS. There are two
binary packages and two CVS branches: Russian, called
saeed, and English, called
one of them and unpack. Packages include precompiled ear-files
(Enterprise application archives) called
First, set up a DBMS. Preferably, Interbase. PostgreSQL should work
for you, too. Create a database and tables within. In the directory
$SAEEDROOT/db you will find some SQL scripts which you can use to
create tables. When you create the users' database, remember that at
least one of them should be included into the group `admin' (see
Install a JDBC driver for your DBMS.
Install JBoss+Tomcat. On http://www.jboss.org
you will find packages which include JBoss and Tomcat
preconfigured to run in one JVM.
$JBOSS/conf/tomcat and edit the file jboss.jcml. You should
set up a DataSource for you database and bind it to the connection
pool named `DocDB'.
Then find the section titled 'Mail Connection Factory'. Set the
SaeedMail and set appropriate values for User
ans Password fields. Edit
$SAEED/contrib for an example of
jboss.jcml. It is customized for the use of Interbase
Don't forget to change
log4j.properties. The line with
ConversionPattern should start with
HH:mm:ss}, otherwise JBoss logs will not include timestamps.
Try running JBoss+Tomcat. (See docs)
in the source
saeed.ear/saeed.war/WEB-INF/web.xml in the saeed.ear
file). The parameter `encoding' specifies your default
encoding. Remember that if you change it, you should also
change the encoding in all JSP's.
OPTIONAL: Change paths in the Makefile and compile Saeed by
Deploy saeed.ear by running `make install' or by just copying
$JBOSS/deploy and point your browser to
http://yourhost:8080/saeed which is the welcome
screen. Or, you can go directly to the logon page:
http://yourhost:8080/saeed/control or to the
OPTIONAL: If you experience problems with productivity, try to
comment out all
log.debug() calls and re-compile Saeed.
There are just too much :) Here are the most important ones:
A better "design" :)
Security: JAAS, check all pages for unauthorized access, close some beans'
Non-text elements (files): shift to BLOBs. Upload, download, show files.
"Multiple recipients" -- ability to send a document to a number of
users who do not belong to a single group.
Copy & paste elements
Introduce Scheme (Kawa?) as the scripting language.
Printing: convert elements into printable form (pdf for text elements) using