Electronic documents are all well and good - but when you work onthem collaboratively, they can end up being more difficult to handle thanordinary pieces of paper. Multiple versions, competing standards, accesspermissions and revision history tracking are just some of the issues thatarise in a paperless office. This article discusses building and deployinga document management system across your network - and also teachesbeginnners a little bit about designing Web-based applications with PHP andmySQL in the process.
At this point, I have also come up with a few ideas as to how this system is likely to work. I plan to model it closely on the check-in/check-out adopted by many popular source-control system, most notably CVS [http://www.cvshome.org/]. Incidentally, we did consider using CVS - the developers are already quite comfortable with it - but the managers had a "problem" with the command-line interface.
Here is an initial draft of the basic rules that I plan to build into this application:
1. Any user can log in to the system and add a file to the repository. This user can also assign permissions to allow other users to view (download) copies of the file, and modify (upload) new versions of the file. Users can only view/modify files if they have appropriate permissions.
2. Users with "view" permissions can download the most recent copy of a file for viewing on their local systems.
3. Users with "modify" permissions can "check out" a file from the storage area, make changes to it, and then "check in" the new version of the file. Other users cannot access a file while it is checked out.
4. A revision tracking system will enable users to enter comments at the time of checking in a file; these comments serve as both a reminder of the changes made to the document, and a notice of which users have made the changes. However, unlike most source-control systems, I do not currently plan to archive previous copies of a document (because it is not a requirement at present - though this can easily be added), or provide a method to "roll back" changes (because I have no idea how to track and revert changes made to binary files like JPEG images or Microsoft Word DOCuments).
5. All this activity will take place via a Web browser, thus freeing the user from having to install any special software on their workstation.
And while we're deciding on the features and rules, let's also decide on a name. I'm going to call it The Vault, simply because it functions much like a bank vault (secure access; user identification and tracking; sounds hip).
This article copyright Melonfire 2001. All rights reserved.