I've recently been doing research into other modules that are commonly used by libraries and that have functionality that would be useful in combination with the library module that I'm writing. One module that looks particularly interesting is the Bibliography Module.
The Bibliography Module provides a content type with a whole SLEW of fields applicable to a library item. For example, the module provides a multi-value 'contributor' autocomplete field. I had planned on using a CCK node_reference field for author, but that would require the user to enter the author(s) they wanted to reference before they entered any given library item, (a chore), and there wouldn't be a way to indicate what kind of contributor that author was (artist, editor, etc). The biblio module provides an associated field to indicate the type of contribution.
Data about biblio items can be imported and exported using XML. AND it allows the content to be harvested by OAI-PMH (http://www.openarchives.org/). COOL! :) The main disadvantage is that fields such as author can only be used by the biblio content type - it's not extensible into other types.
I'd really like to build the library module to take advantage of the functionality of the biblio module. Prior to my investigations, I was starting to include additional fields for volume and issue in the library table because of the large number of comic books I'll need to index. I'd like to have a method to combine these in the same way I've seen public libraries list other periodicals. Still trying to work that one out...
In the meantime, I've separated quantity functionality from barcodes. I'm just going to assume that if they aren't using barcodes, they won't particularly care WHICH copy of the book is where - just if any are available. (They wouldn't have a way of telling anyway.) I now want to separate barcode from call number since it seems that call number is generally the same between multiple copies of the same work. I've also added some places where users can customize the look further. I really like how the biblio module organized its display settings, so I may take a page out of its book. *smile
I still need to integrate the module with views and add some user-friendly ajax indicating if a title already exists before a user submits an entirely new node and instead append it as a new copy. I've also been thinking about adding something so that users can pair checkin/checkout actions. So that if an item is make unavailable by an action called 'Damaged', it's not made available by an action called 'Checked In'. But I'm not so sure... The other idea I'm playing around with is adding the ability for a user to designate an associated action to occur when a non-status changing library action is triggered. (for example - an email when a patron 'requests information'). I'd also like to build in some functionality for holds. Man there's SO MUCH TO DO.