Document Managment Module

Events happening in the community are now at Drupal community events on www.drupal.org.
blainelang's picture

I have created a module called Nexfile which is a Document Management or File Management application. There are several modules that are in the file management category but don't believe there are any that match the features and integration from a single module that Nexfile does.

The Nexfile application was initially created for another PHP Framework where it's being used for one client to manage 1000's of documents and can be used to store any document type. Although, the Drupal version of the application now looks and works identical to the original one, just about every line of code has needed re-work to be a native Drupal module.

[Edit]: The module was renamed to filedepot when CVS access was approved and project page created.

I have requested a CVS Account to publish the module a few weeks ago but the queue is long and wanted to reach out and get more feedback from the community. While the CVS request is being processed, I have posted the module on Google Code where you can download the module archive under Downloads.

An overview of the module features includes:

  • The module allows documents to be saved outside the Drupal public directory to protect corporate documents for safe access and distribution.
  • Intuitive and convenient combination of features and modern Web 2.0 design provides the users with the familiar interface to organize and find their files. Cloud Tag and File tagging support to organize and search your files.
  • Flexible permission model allows you to delegate folder administration to other users. Setup, view, download and upload access for selected users or roles. Any combination of permissions can be setup per folder or sub folder.
  • Integrated MS Windows desktop client to easily upload one or 100's of files directly to the remote web-based document repository. Simply drag and drop files and they are uploaded.
  • Document tagging allows users to search the repository by popular tags. Users can easily see what tags have been used and select one of multiple tags to display a filtered view of files in the document repository.
  • Users can upload new versions of files and the newer file will automatically be versioned but previous versions are still available. The desktop client allows you to perform online editing where saving the file will automatically update the hosted file.
  • Users can selectively receive notification of new files being added or changed. Subscribe to individual file updates or complete folders. File owner can use the Broadcast feature to send out a personalized notification.
  • Convenient reports to view latest files, most recent folders, bookmarked files, locked or un-read files.
  • Users can flag document as 'locked' to alert users that it is being updated.

A 5 min video overview of the module: http://www.youtube.com/watch?v=U3dYJlXurMA

Thanks!, Community feedback would be appreciated.

Comments

That's really great, i'm

sinasalek's picture

That's really great, i'm curious to know what API modules you used?(FileField,Views,Panels,...) ?

==

blainelang's picture

Folders are a content type so we require CCK enabled and use the fieldfield module so that you can manage (add/edit/delete) folders and files via the native Drupal content admin user interface.

Organic Groups support was added so OG needs to be installed but optionally not used.

The native application interface uses a lot of AJAX to create the desktop like feel and does not use views or panels or any other module.

I have tested using Views to create a page view and that works - and is something I have been meaning to write up as a blog article.

Good to see document management on Drupal

alexh's picture

I shortly tested the filedepot module and have to say it looks impressing - quite complete document management solution.
Just wondering why files are not nodes and why taxonomy module was not used for the tagging? I think it would have been easier to integrate with this.
OG module is now mandatory - as filedepot can also define access rights on user and role level it would be better to have it optional.

Thanks!

blainelang's picture

Thanks Alex for your review and comments.

This was my first module for Drupal and there is still much to learn but my colleagues and I did spend considerable time thinking about what Drupal features and modules to use. In the end we decided to treat a folder as a content type and files as attachments (fields to that content type).

Taxonomy was not used because we need to maintain tags on files based on folder permission. We don't want to show 'secret' tags to users that don't have access to such files. There are modules that extend taxonomy which include access control but then we were going to have even more dependencies and adding more complexity. I already had a working tag cloud class and security model which worked fine. I did not see the user benefit.

There was a significant CRY for OG support when filedepot was first released and for several weeks after. It was more important to add the support. Once we are assured there are no issues with OG, we can certainly look at adding the changes/support to optionally not use it. At this point, it's pretty easy to install/enable the OG module and then not use it.

There has been a lot of great community feedback and testing on the module and a final version 1.0 will be released shortly. It looks like there may still be one or two more minor releases before all the issues effecting it's serious use are addressed.

After that we can look into other ideas and enhancements - what level of integration are you thinking of that 'would be easier' if files were nodes?

If files were nodes...

alexh's picture

If files were nodes, it would be possible to add fields for additional metadata, to link files from other nodes using node_reference, or integrate with any other modules based on nodes.
Files are (in most cases) not the only content type on a site, so if I want notifications or flagging of content I can't do this in a consitent way for the user, because files would be handled by the built-in functionality of filedepot, while other content types would be handled by some other modules (e.g. notifications, flag) - maybe in similar way, but still different.
While I'm thinking about a document management system in Drupal I also thought about a quite different approach: having folders as categories (taxonomy) and files as nodes. Did you consider such an approach. If yes, I would be interested to know your reasons not to go this way.

==

blainelang's picture

Using Taxonomy for the folder structure was considered but would not work for the same reasons it was not used for tagging which is an even more natural fit. The permission logic in filedepot is quite flexible and intuitive for users. Trying to wrap that level of integrated and easy to use functionality around taxonomy, organic groups and several access control modules would never have been as clean an implementation. I am already getting complaints from making OG a required module after being asked by many users to add OG support.

Files as nodes or not was something we debated for weeks and we finally decided to go the way we went. With any decision, there are pros and con's and we will look at providing ways to extend filedepot in future releases.

If you have a present client need, please don't hesitate to contact us for customization services.

Contributed Module Ideas

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: