Community & Support

Drupal DiY Library Module - Cataloging Question

I am working with a small DiY library project here in Columbus, Ohio called the Sporeprint Infoshop, see http://sporeprint.info. We are currently using Drupal for our web-site and upon reviewing many of the ILS (integrated library systems) they seem like over-kill for our small library of a few hundred books.

What I'm trying to do is create a simple library module that will allow users to check-out books and track where they are. This shouldn't be too difficult to code.

What I'm running into a barrier of knowledge and I thought that I might see if someone else out there was aware of how to do this.

I want the cataloging to be as easy as possible. The ASIN module that works with amazon seems like a good potential starting point, as well as the Z.3950 module which looks up MARC data on the library of congress. My question is what would be the best way to import this information directly from a look-up to map it to CCK fields tied to the MARC module and faceted search. I'm guessing I would need to parse it or use XML or something along those lines. I guess I'm just looking for examples to develop from since I'm a novice programmer and I wanted to see if anyone else was interested in this type of project or could give some advice.

Comments

Check out the Millenium module

http://drupal.org/project/millennium crawls a Millenium OPAC and parses MARC records into taxonomies. You might be able to reuse some of its approach.

Some library school students are blogging the topic of Drupal-as-small-ILS at http://blog.anchorarchive.ath.cx/. Also, check out http://drupalib.interoperating.info/, maybe someone there can offer some assistance.

Possible DIY Library workflow

Do you know LibraryThing? Perhaps that could fit the bill! Take a look at: http://www.librarything.com/

Now... for what *I* would do for your case... =)

To set up your Catalog

The workflow might be:

  • Have something that just takes your barcodes and converts that into categorized/tagged nodes in Drupal. This would result in nice title/author/subject/year published/etc. book information. Yes, you could use MARC import, but then you would have to first get the MARC =) Perhaps one could write a simple Bookmarklet that, once you are in an item in Amazon, sends that info onto a pre-filled Drupal form? This way you can have just about anybody "Catalog" (Note: I am not saying Amazon is neither all the information nor is it the best quality you will get, just that's there's a lot of it it in one convenient spot).
  • I think the ASIN module just shows the Amazon product info and Drupal can't search upon it...
  • The important part here is to import some of the info onto taxonomy instead of the node content, so you can then use modules that take advantage of taxonomy; similar_by_terms, faceted_search, etc. After importing, you will most definitely realize that you have slightly different terms for the same thing; like authors' initials missing or having a period, or subjects being in plural and singular forms... c'est la vie! =) Using similar_by_terms and faceted search will surely help them discover things they might have otherwise missed without those features
  • On the above step, you might want to specify that you have several copies; then you would also need to generate N number of "item" nodes (or something else?). Now you could track which copy is loaned out to whom. Maybe you would also need to specify if a certain copy has gone missing, or in repair, etc. This would require a new module I think =)
  • After loading, have a batch process generate barcodes to print; then a Drupal module might let you scan the item's UPC (the barcode used for buying stuff), then scan the barcode you are about to stick on the item, and Drupal will then relate the "item" node to the actual barcode on it. This is would also be part of some new module =) If you only plan on having one copy of each item, then just use the UPC as the barcode =)
  • Question: how are you going to shelve? Believe me, if you have 300 or more books, they WILL be difficult to find without some shelving scheme (if the shelves are going to be browsed by your patrons, then pick something logical. It doesn't have to be Dewey, but putting subject-related items close together helps them discover things).

Circulation

Now for the actual circulation:

  • Well if the catalog is set up, users might want to know if you actually *have* the item in the library first. So you would have to show that in your Catalog.
  • You would have to have a "staff" module for checking out, that would:
    • let you scan a user's barcode (or enter his/her ID manually). Possibly this is where you want to know if the user has 40 zillion things on loan and was supposed to return them 6 months ago...
    • You then scan the item-to-loan barcode. This is where the system would tell you stuff like "OK, please return Monday, Feb 18th 2009" or "This item is supposed to be on loan, do you want to chek this item in instead?", etc.
    • You might want to scan additional items before finishing with this user.
    • When finishing you might want a receipt, via mail or printer.
  • For checking in:
    • Check the item barcode (no user barcode is needed here... allowing for goodies like a 24hr book return box) =)
    • The system might say "OK", for you to reshelf. Or "This item was late, Send user X an email informing of a $2.00 per day fine --OR-- override this fine?". You might want a copy of that email =) Fines are a complex and touchy issue, perhaps you can gather more info on this later on =)

I need more

I need more info/examples/step by step on how to get book information imported as nodes... This was very helpful. Are there more good discussions on this topic?

I want people to have some easy way (like input isbn, or marc, or the marketlet via amazon you mentioned. With the idea to reduce the time to enter the book info and also hopefully reduce typos or other information goofs.

Please post any links to more examples about how to import book info...

Like install module xyz
Select add book
Enter isbn
Fields get filled in
Click accept

Only I know it is not that simple... For example you referred to needing to getvthe marc info in order to use the marc module ...

Cathy Theys
YesTrainingAndEducation.com

same here, any updates?

Hey, I want to do exactly the same thing, except maybe allowing users to check books in/out by themselves, and eventually extending functionality to non-books (lawnmowers, welders etc.)

We were planning on doing the data entry manually (no barcode scanner).

Any updates on useful modules to do the circulation? I'm also trying to get hold of the circulation module developed by the zine library at http://www.robertsstreet.org/

cheers, Brad

Drupal ILS using Circulation module

I had the exact same issue with our library at UCIMC (http://www.ucimc.org). We use Drupal for our website infrastructure and wanted to integrate collection management and circulation into that. Amanda and Zac from Roberts Street graciously provided their Circulation module, which was running on Drupal v5. I updated the code to v6.x and can provide that to anyone who is interested.

Here's a description of how we're using it: http://library.ucimc.org/content/ucimc-online-catalog-description
And the a basic search interface: http://library.ucimc.org/itemsearch

The Circulation module does several things:
- Identifies one content type as a bibliographic record
- Identifies one borrowable content type, nodes of this type have a node reference to a bibliographic record
- Associates borrowable content type nodes with user nodes
- Defines #days items may be loaned
- Maintains circulation history for borrowable nodes

We're using Dublin Core metadata for our bibliographic records, but would like to extend the module to allow copy cataloging from some external source. We're using the Book Post module to grab Open Library data on books with ISBNs as well.

Hi Critzo, I would be

Hi Critzo,

I would be interested in looking at the 6.x code for the circulation module. I've got a fairly good understanding of how to setup the Work/Item/User records, but I'm having a rough time getting my head around how to maintain the circulation data.

For copy cataloging, if you have access to MARC records, there's a MARC module available that does batch processing. I find the Node Import module to be helpful also. The Prepopulate module looks promising too if you have access to some bibliographic data API, all you would have to do is generate the appropriate URLs with the API to create a Works record.

Circulation module

Apologies for taking so long to get back here & post this. Hope this helps someone and please contact me if you have any questions or want to help with this module.

Circulation for Drupal 6.x
Description: Used to create a functioning integrated library system within Drupal.

Some basic documentation:

admin/settings/circulation
  • Choose one content type that contains nodes with bibliographic information, a second content type with borrowable items and "connect" them by choosing a node reference field.
  • Define the number of days an item can be loaned
  • Define the node type associated with Users
For more info
A description of how I'm using this module can be found here: http://library.ucimc.org/content/ucimc-online-catalog-description

How does this differ from Library?

Thanks for sharing your module. How does this differ from the Library module at http://drupal.org/project/library? I also am looking for basic circulation functionality. Can you explain how your module might be different than the Library module?

Drupal 7

Have you guys started updating this for Drupal 7? If so, I'd love to test it for you all.

nobody click here