Doing groupware with open-source solutions


As of June 2001, the main open-source groupware projects are PHPGroupware, Mioga, Amphora, PHProjekt, Wiki and its derivatives (ZWiki, Twiki, etc.). Where all of those fail, however, is that all support client access through web browsers only, which can be a problem for some features (eg. WYSIWYG in-place editing for the document management module), none support PDAs (so users cannot upload/dowload entries in PHPGroupware's shared calendar), and support for disconnected mode is just about non-existent.

For the latter, a temporary solution for road-warriors is to use an IMAP mail client such as Outlook Express, off-line web browsers like WebCopier or HTTrack, and the fabulous HTML WYSIWYG editor WebEditor from Namo. I am still looking for ways to have PHPGroupware work with my PalmPilot, and would also like to have PHPGW's shared address book be synchronized with mail clients, but it's probably no pic-nic (eg. what happens if the user has entered entries in Outlook Express: Will downloading infos from PHPGW erase those local entries? Better yet, how to merge local and global entries?)

As for document management, you should look into Apache's WebDAV module and Windows clients that allows users to access Apache's directories through the familiar Windows Explorer interface, with the benefit of file locking and versioning as compared to Samba.

Another solution is TreepadX, the client-server version of the popular Treepad outliner.

Here's a possible architecture:

The dedicated client application ("Client app") is used to write and read data that live in the DBMS; Any web browser can be used to read data. The advantage of using a dedicated client is that it solves the issue of WYSIWYG editing, access to data while in offline mode ("disconnected mode"), and synchronization with PDA's like PalmPilot. None of this is currently possible with server-based apps that are called from a web browser.

The whole server-side part, from "www server" to "DBMS" should be available in either a server version or a local version, so that the dedicated client application can access data either through the network when the client host is connected to the network, or in offline mode when the client host is disconnected. The server application is called through a web server through eg. CGI calls. The advantage of going through a web server is that data can be access even from a web browser, so that you don't need to install the client application to read data. The server application goes through a source control manager (SCM) so as to provide data versioning. The SCM application in turn saves and retrieves data in a DBMS so as to provide high-performance and scalibility.

Here's what the client application could look like:

The icons in the Outlook-style tree are links to sites, which would actually be saved in a DBMS. Clicking on a site would open up an outliner to display the list of documents that make up that site. Clicking on any document would display it in the WYSIWYG window on the right. Ideally, the application would support MDI windows, so the user could work on more than one document at at time. The client application connects to a process which itself connects to a DBMS, regardless of where the server and DBMS live: If online, the client app connects to a remote server through the network; If offline, it works locally. This requires writing a server process and using a DBMS that can run on the server or client hosts.

Required features



So many questions, so little time... 

Poor man's intranet

News, documentation (SMB/CIFS, FTP, WebDAV, web browser, offline browser, NNTP, WYSIWYG HTML editors, rsync/unison), security (access-controled sections, PGP-encrypted files)

Browser-based Inline-editing by editing documents in HTML with eg. OpenOffice, and pasting its HTML output

Offline editing by uploading HTML file through WebDAV or FTP

You can build a pretty good intranet with just Apache and an FTP server like ProFTPd. Users can download documents or whole directories onto their client for offline access, create or modify documents with their favorite editor, and upload the result back to the server, either through the WebDAV protocol or the FTP protocol.

For news and threaded discussions, there's a bunch of open-source solutions below, Perl- or PHP-based that make it a breeze to set up.

Compile Apache with support for WebDAV so people can upload files with a WebDAV-capable web browser like IE. Also set up an FTP server to allow IE-allergic users to upload their stuff without using IE.

Offline browsers: wget, WebStripper, WebCopier

Redirectors: Utilities are available to map a remote FTP or WebDAV resource to a letter so it appears as a regular SMB/CIFS resource: WebIFS and TeamDrive.

Windows Explorer can add links to FTP servers (Tools | Map Network Drive: Create a shortcut to Web Folder or FTP server =

Internet Explorer 5.x supports WebDAV so you can have write access to a remote WebDAV-capable HTTP server: File | Open, check Open as Web Folder, and type the URL.

List of available solutions

Note: I haven't looked at all of them, and I mixed commercial and open-source solutions  

To Read