Groupware systems covers so many types of software, I'll just explain how some of them differ, before getting to any of the projects themselves

While Groupware is a fuzzy term, I'll use this space for programs which are designed to run on a internet or intranet server, and to enable people to share information there. Most of the systems have some sort of user-login, they run in PHP or Perl, and they nearly all require a database

Most of the projects have a demo version of themselves at the website, where you can try out the features, but it's worth doing an install on your own machine, just to find out how easy they are to install and maintain before you choose your final production system

I'll split the page into sections, and put a description at the top of each section...

Project organisation

Project organisation software is used to share information in an office; it has calendars, contact lists, supplier names. You can create tasks and assign them to people, check your ToDo list, and schedule meetings in shared calendars

This category is heavily overlapped with desktop software which does the same thing, and there's some debate as to which is more useful. Desktop software (Outlook/Exchange, Evolution, KMail/Colab, etc) tend to be easier to use and faster to respond, whereas web-based software is much easier to keep track of in large organisations with many people accessing the same system

MoreGroupware

MoreGroupware is the sort of program which give you confidence in web applications. It's delightful to use, and feels just like a nicely-designed desktop program. It has all the usual features for this class of software, and the same 'linear' way of editing data... one thing at a time, common to many web applications.

If you're looking for groupware, you should definitely install MoreGroupware somewhere to test it out

Tutos

TUTOS (The Ultimate Team Organisation Software) is another PHP-based solution, but I have to say it seems difficult to setup compared to some. The documentation is a little condasending (sp?), and PHProjekt (below) does the same job but is easier to use.

I can't help but think that the PHProjekt might be a fork of TUTOS by people who wanted to make it easier to use, but as soon as I find out, I'll update this page (or email me)

PHProjekt

Another fairly nice, easy to use, easy to install groupware suite, well worth taking a look at

Customer interfaces

Customer interfaces might be better thought of as user-groups, or such like, where each 'product' has a section of bug-reports, news items, feature-requests etc. In fact, it's almost identical to the 'development systems' section below, except without the source-code-control features.

PHPcollab

PHPcollab is one of the main projects in this area, and it's reasonably easy to install and use. The user-login and operation makes the program feel very robust, and it certainly inspires confidence.

The feature-list is mainly limited to support-requests and file-releases for a project, with a good administration section for a team of people to handle the requests. It doesn't have much of a front-page for each project, so it's probably better suited for software which doesn't need to be distributed on the web.

Problem tracking

Problem tracking software is used for tracking bugs in software, as a quality-control system, or just as a reminder of outstanding issues.

Bugzilla

Bugzilla really is the full-english-breakfast of bug-tracking software -- anything you can think of, it already supports.

Projects, groups, priorities, products, target milestones, user permissions, email notification, attachments, assignments, notes, queries, custom reports, saved reports...

It can look quite intimidating in its default configuration, but if you start off using any other system, then eventually someone's going to want this extra feature or that extra feature, and before you know it, you'll need Bugzilla anyway

The installation instructions for Windows are quote good:

Other than such gems, the documentation is good, and there are dedicated IRC channels and newsgroups to support you

Development systems

Development systems are used where people need to work on source-code at the same time, to write software, documents, webpages, etc. in collaboration with others

This is mostly the realm of CVS (concurrent version control) systems, which keep track of changes to a piece of software. Those won't be reviewed here (CVS, SubVersion, BitKeeper, SourceSafe), but there's room for a more famous tool:

Sourceforge

Have a look at sourceforge.net, or savannah.gnu.org - thousands of projects, each with their own home page, mailing list, support requests, CVS, CVS viewer, nightly snapshots, download mirrors, small-ads, and email systems.

The software is available for you to build your own such development system, which can be a very efficient way of keeping track of lots of software projects.

(I think the link is correct, but I've not installed the software, so let me know how you get on if you do a sourceforge install

See also: Debian-SF, which seems to have rescued the last open-source version of sourceforge

Email systems

Web-based email systems are fairly common now, and anyone who's used Yahoo or Hotmail will be familar with using them. Web-based systems can be a lot easier to setup and support than desktop email clients, and they can be used securely by people in a web-café or on customer sites.

Before you rush out and setup an email server though, consider that they can be very dangerous indeed. If you make even a small mistake, your systems will be compromised by spammers, and you will likely lose your internet connectivity if you are discovered running an email server which is vulnerable, or which allows spammers to relay their email through your system. If in doubt, DO NOT set up an email server.

SquirrelMail

SquirrelMail is the standard webmail distribution, which gives all the folders, attachments, filters, and secure-access that you need.

Note that you will need an IMAP email server alrady running for SquirrelMail, and SquirrelMail simply acts as a client to the IMAP system. Of course, this allows people to use their favourit desktop email clients with the system, simply by talking directly to the IMAP server.

Instant websites

The easiest way to explain this is to go to slashdot.org, and take a look around. There's a main page, with news items that can be added by editors. There are subdirectories, there are users, and the users can comment on the news items.

There might be poll-questions, newsfeeds from other websites, quotes of the day, etc. but these systems tend to be good at sites whose main content is news or articles, and where people like to make lots of comments and discussion

SlashCode

Since I mentioned slashdot, I should follow up by saying that the main system is SlashCode itself, which is used to generate that site. It's been used in loads of places, it's fairly distinctive, and it's got the comments and peer-review system to try and combat spam

Bear in mind that SlashDot works well for at least 100,000 users or so: if you have much less traffic than this, then many of the features will seem like overkill.

News

News sites are similar in concept to slashcode, but much simpler. They allow your editors to put stories on the website through a web interface, and that's it. No comments to manage, no HTML generated by your users, just official spokesmen

That sounds less featureful, but it's actually a lot simpler and nicer to use, and avoids a whole lot of problems with massive user feedback

Message boards

Wikis

No discussion of this sort would be complete without the WikiWikiWeb. The concept is a website, where anyone can change anything. Someone has text to add, a new page to write, or a spelling-error to correct, they can just do it.

Naturally, this is wide-open to abuse, so Wikis rely on the moderators to spot malicious edits, and roll-back the pages to a previous version. Many Wikis give you user-logins, approval-required, or editor/reader distinctions to let you keep the content under control

Public examples include the WikiWeb itself, the Wikipedia, and the Wiktionary

Many projects, such as SquirrelMail (mentioned above) use Wikis for their documentation, as it means that users can add details of their problems, how they solved, them and the ways they use the product. It also makes website maintenance fairly painless, as it doesn't depend on just one person, and makes pages easy to edit with a common style

Appendix: Getting the server

Most of the software I've mentioned requires that:

Apache is very easy to setup: either in Windows or Linux or BSD, it's just install and it works. The default config file is fairly secure, and you just have to change a few things, like telling it the name of your website, and the location on your hard-disk where the website is to be served from

PHP can be difficult to setup, or it can be easy. PHP itself is no trouble at all, but sometimes it can take a while to get Apache to recognise .PHP documents and send them to the interpreter. If you can get someone (a program, an installer, an expert, or a hosted website) to do this for you, I reccommend it!

Database servers are relatively easy to install, but securing them against crackers can be quite a headache. For example, you need to disconnect from the internet while you setup a database server, then change the root password and check the privilige list before reconnecting it.

One way of getting this all done for you is a GNU/Linux distribution such as Mandrake, which lets you tick Apache, PHP, MySQL when you install it, and mostly sets it up for you. Similarly, Debian will do the Apache setup automatically when you install PHP

A good way of getting everything working quickly is the mini-XAMPP distribution, which gives you Apache, PHP, Perl, MySQL, and the extremely useful PHP-myAdmin (see below)

Appendix: setting up databases

When you've got a database server running (which you need for most of the software on this page), there's still a lot of administration of the server to do

The tools are fairly good:

First thing, the root password of the database needs to be changed. PHPMyAdmin works okay for this, or you can edit the Users table in the MySQL database.

Most of the groupware programs will require that you create a special database with a particular name, often the same as the program name. To do this, simply use mysqladmin create databasename

Then you can add a username and password combination for each program to access the database. It's useful to pick a different one for each program, so that if one of them is compromised, it doesn't affect any ot the other databases. Give each username permission to its own database, then when you setup the groupware program, you will need to tell it the username and password to access its database

Note that this has no relation to the users on your operating- system, or to the users on your groupware system. It's just a password for the groupware program to talk to the database. For this reason, you can pick a long, secure password, as it will only need to be typed once or twice

PHPMyAdmin will then need to be configured to tell it the root database password, so that it can make all necessary changes to the database. You might also like to check that the root user can only login from certain IP addresses, so that you can edit the database from your computer, but not from across the internet.

You will need to setup the permissions and the database for each product before you install it, and have the database server running, so that when you run the install program for the groupware product, it can connect to its database immediately

If you have problems, you might need a database analyst (DBA). They cost about £80,000 per year

Back to index