One of my clients, a non-profit, has a lot of files on it's clients. They need a way to digitally store these files, securely and with availability for certain people. They also need these files to expire and be deleted after a given length of time - usually about 7 years.
These were the parameters I was given to search for a Document Management System (DMS) or more commonly a Content Management System (CMS). There are quite a lot of them, but most are designed for front facing information delivery - that is, to write something, put it up for review, have it reviewed and then published. We do not want this data published ever - and some CMS's make that a bit tricky to manage. So at the end of the day, I looked into several CMS systems that looked like they could be useful.
The first one to be reviewed was OpenKM (www.openkm.com). It looked OK, was open source which is preferable and seemed to have solid security and publishing options. Backing up the database and upgrading OpenKM seemed like a nightmare. I tried a couple of times only to experience great sadness and eventually throwing my hands up in defeat. Scratch that guy off the list.
The next one I seriously considered was Plone (www.plone.org). An open, attractive looking interface certainly helped matters from the get go. I liked it, it looked nice and the decision makers at my client would like it too. Open Source, Linux install - OK good to go. The installation documentation is pretty good, a bit fuzzy at times ( though I do attribute that in part to a lack of solid caffeine) and it was relatively straightforward to get going.
I followed the instructions and started to build the site. It was pretty straightforward and offers different workflow types - so for an internal site, there is no publishing option available. Posts (or uploads of files) are set to either "For Review" or "Private" which is perfect for the application we have at hand here. File size uploads are relatively straightforward to change - there is a config file, much like MediaWiki or similar, that allows for changes to the site that are outside the scope of the in-application setup.
After the build, and setting up internal DNS, outgoing mail and accounts, I set it loose with the client. They have logged in, tested it and come back with a plethora of questions - many many of them. I have changed the security options several times and it's handled it all quite well. Before the system goes into production I'll be making sure backups and restores work. Phone has internal ones that I still need to do more testing on. Stay tuned!