New module on d.o. called 'Library'

[Originally posted 2008-08-12, edited and expanded 2008-08-13]

This new module, released on Aug. 8, looks like it has potential as a lightweight ILS. It allows site admins to define content types for books and other circulating physical material, to define copies of the books (called 'items'), and to define simple borrower records. Here's a late-night walkthrough of how this module works.

The first step in configuring this module is to create patrons, which are the only content type that the module provides. Identifier, first name, last name, and email are the only fields provided:

Users creating patrons must enter a unique ID for the new patron. This ID should be generated by the module. The module provides a patron history, showing the details of every transaction:

After at least one patron has been added, descriptive records for circulating material can be created. Any content type can be flagged as a 'library item' in the content type's workflow settings, and different content types could be created to describe different types of material (books, magazines, DVDs, laptops, etc.), or alternatively, a more general content type could use a select field or a taxonomy to indicate it's type. It would be useful to treat items (copies) as nodes, maybe using something like a node reference field, so that location and other copy-specific attributes could be added as needed.

Once a content type has been identifed as a library item, copy (item) information appears in that content type's node create/edit form:

There is a checkbox for 'Reference only' for each item, and I assumed that items with this selected could not be checked out, but that wasn't the case. Clicking on 'Add an item' inserts a new row in the copy information field group:

Listing books (or whatever has been identified as a 'library item') will show the check in/check out actions:

Clicking on the check in or check out action reveals the item's title and ID, the patron, and a field for messages/notes. Display of the patron's name as well as ID would be useful here:

It's not possible to tell the status of an item by looking at the default display -- one improvement here would be to show the only available actions for a given item, for example to 'check in' if the item is out and vice versa:

In general, this module provides pretty much all of the functionality needed to maintain a library of circulating and non-circulating (assuming 'reference only' means non-circulating) material. The glitches identified above can be expected in an initial -dev release and the module maintainer is interested in hearing about bugs and improvements.

Richer patron records and the ability to use a barcode or RFID reader (maybe via Google Gears or some other desktop-to-webform bridge) would be a obvious additions. Fielded searching would be expected by many staff and end users but that could be bolted on using Views Fast Search or CCK Facets. In the best Drupal tradition, secondary modules that add functionality to a solid primary module would be the way to go, allowing libraries to add and remove functionality as needed.

Someone doing a more thorough test of Library would install Andy Austin's MARC module, create a sufficiently rich content type to map the records into, import a bunch of records, and test the Library module's patron and item capabilities with a set of realistic use cases. Comparing Library to some of the other lightweight ILSs like Scriblio, Blacklight, phpMyLibrary, or Emilda would be a worthwhile exercise as well. It will be interesting to track how this module matures over the next while.

Comments

Drupal ILS, the time is close!

There is no reason that DRUPAL could not support a WEB 2.0 ILS. Think about it, all the modules would provide massive flexibility with the nodes. Views would offer ability to edit say a patron created with CCK module.

OK, I will write a feasibility study of all the modules needed for a full Drupal ILS.

Ann Arbor has created a Drupal OPAC with iii as the main ILS. But Drupal could *be* the ILS, which would blow away any ILS. Think of the flexibility...need a module in your OPAC or staff interface, go fishing for a module, there are literally hundreds that already work with nodes!

Let's build it, they will come!

-Joe Malik

Let's start with the Library module and go from there

I'd say the Library module is a good place to start for the core functionality. I agree, a Drupal-based library system makes a lot of sense, particularly if using Drupal as a front-end for an external ILS (like the Millenium module does) isn't an option, or if you don't have an ILS on the back end to spit out MARC records that you can then lay Drupal over (like the MARC module allows).

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <h3> <h4> <h5> <h6> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Use [toc list: ol; title: Table of Contents; minlevel: 2; maxlevel: 3; attachments: yes;] to insert a mediawiki style collapsible table of contents. All the arguments are optional.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
           ___    ____    ____            ____  
__ __ / _ \ | _ \ / ___| __ _ |___ \
\ \ / / | | | | | |_) | \___ \ / _` | __) |
\ V / | |_| | | _ < ___) | | (_| | / __/
\_/ \__\_\ |_| \_\ |____/ \__, | |_____|
|_|
Enter the code depicted in ASCII art style.