NCompass Live: Tech Talk with Michael Sauers: Building your own ILS from scratch

1,123 views

Published on

With the cost of purchasing an ILS completely out of reach for a library in a village of 128 people, Beth Kulacz, the Director of the Broadwater (NE) Public Library, decided she was going to build her own. Join us to learn how Beth designed and coded a system specifically for her small library and how you can get a copy of her shareware application to use for your own library.

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,123
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

NCompass Live: Tech Talk with Michael Sauers: Building your own ILS from scratch

  1. 1. LibDatabase Cataloging Solution for small libraries on limited budget Beth Kulacz LibDatabase Author Library Director, Broadwater Nebraska staff@broadwaterftl.org
  2. 2. My Background • Software engineer for Fortune 500 company • Ran my own software company • Eventually, ended up in Nebraska small town. Urged to get my (provisional) librarian certification from NLC. • Became Library Director of small library with no computerization. Commercial software out of reach. I saw the way the books were being inventoried for move. Simple database application.
  3. 3. I Introduction • Needed an up-to-date catalog of materials • Should be searchable • Value of material – lost items or disaster • Patron privacy is of utmost importance
  4. 4. Budget • Commercial cataloging software out of reach. • Some freeware but would require your own local server. That is not possible in the local area either. • Volunteered to help inventory items packed during move. • Not complex – skills to do it
  5. 5. Considerations • Could not use applications or development software requiring royalties for government or commercial use. • Could not use images, text, or rely on other applications under copyright.
  6. 6. Today • We have it, and are using it. • Other libraries have the same problem • “Lightweight” solution. Not appropriate for a much larger library. It worked well for us, so you don’t have to reinvent it! Shareware, asking for a donation to our Friends of the Library group. Small Libraries: An unfilled niche for corporations.
  7. 7. What we wanted (basics) • Searchable Card Catalog. • Information on location of material. • Statistics of how many of what type of item we have • Patron privacy is an absolute MUST. • Information concerning value of each item and collection – for patron loss and insurance purposes in case of disaster.
  8. 8. What we wanted (Nice to have) • 24x7 online access • Circulation system that did not rely on “old fashioned” book cards. • Placing “Holds” on items. • Check for overdue items. • Select candidates for weeding. • Maintain a list of items to be replaced.
  9. 9. Non-Goals Things we didn’t want/need • Magnetic stripes and scanners. • To place restrictions on who can check out certain things. • To place any limits on the Freedom to Read. There’s no function for saying that some items are for checkout for adults only, or to children over a particular age, or limit in any such way. - In small library, better to do by personal recognition and judgment, than relying on software. • To store historical lending patterns or tastes of any patron, or card number, for any purpose. • To make it compliant with library laws throughout the world. Designed for US use.
  10. 10. How it was done • Developed under Linux, using free tools in Linux. • Uses Internet-standard and industry-standard readily available tools, including HTML, PHP, MySQL, and Javascript. • Developed locally, by me, working as a volunteer. • Used a great deal of free help – on websites , books, forums, software developers I know. • “Borrowed” code was labeled as legally available and free for use in commercial or nonprofit applications in books or websites where it was published, and attributed to source.
  11. 11. How it was done • Costs involved coffee, diet cola, pizza and several used books. • Help from software engineers I know or met through software forums and late nights. • Developed on a Ubuntu Linux computer, using the free tools available with Ubuntu. • No Microsoft products were harmed in the development of this application.
  12. 12. How it works. • Patrons identified by card number. Identifying information about those patrons is kept in a paper notebook in the library. • Books identified by ISBN or ASIN numbers • Videos, tapes, CDs and items in other formats identified arbitrarily. • Passworded database.
  13. 13. Privacy Concerns • Freedom to Read – ALA and Freedom to Read Foundation. • History of what card numbers have checked out what material are not kept after the material is returned. The only thing kept is the date of the last checkout – for evaluating for weeding purposes. • Association with card number and any patron kept on paper in the library. Even hacking will not compromise it.
  14. 14. Intellectual Property & Copyright • Developed locally by myself. I only used and reused other people’s code only where the author offered it to be freely used with whatever credit the person or author wanted – listed on the About page. • Software that this uses is part of webhost’s services, or is an intrinsic part of the internet.
  15. 15. Tested & Works with most computers • Tested with various browsers with various operating systems, versions, and various computer types (and ages). • I got several people’s input on the usability.
  16. 16. Advantages to Patrons • They don’t have to make a special trip into the library to find out if the library has a particular item. • Categories for special needs items, such as audiobooks or large type books. • Ease of use - Menu items and input items have a short help attached when you hover over them with your mouse. People with little computer experience can search for what they want.
  17. 17. Search for materials • Users or staff can search for items in the library under any number of criteria.
  18. 18. Summary of Collection • This gives a summary of the collection – how many items of what types and what genres are in the collection. • User and staff version of this function • It can tell a user, potential user, about your library, and how much of what sorts of things are there. • It can give staff figures on how many of what the collection has for development. • It gives trustees and financial managers numbers to be able to properly insure collection from loss.
  19. 19. Backend • Let’s look at what’s available on the back end of this. - Staff Functions - Webmaster Functions
  20. 20. Enter New Books (or other items) • To enter an item, it will need a unique identifier. It can be an ISBN, LOC number, or an arbitrary number,selected by your library. • Basic info – author or creator’s name, title, location, copyright date. Also the age group it’s targeted for, children, YA, adult, the genre – nonfiction, mystery, romance, scifi, etc. The format of the item – book, DVD, audiobook, etc. If there’s a performer.
  21. 21. Enter New Books (or other items) • Decide whether or not the item can ever be removed from the library – special collections or reference. • Put in a price for the item. This can be the retail price of an item, the cost+shipping of a used and similar item, appraisal value, or any other method of valuing the collection. - You are not required to enter a value. It will be set to zero.
  22. 22. Enter – Succeed or fail • If it succeeds, it will give you a success. • If it’s duplicate, it will not succeed. You’ll have to use the arrow key on your browser to change something you might have misentered. • If it’s missing an author last name, or title, or index number, it will not succeed and tell you to go back.
  23. 23. Update items • Correct errors. • Update the location of an item. • Re-classify an item. • Re-value an item.
  24. 24. Update items • Update function also contains function to DELETE an item. • If you want to replace a deleted item, V1.0 does not have a place to keep track of such items. You will need to do this outside of the program.
  25. 25. Display (print out) entire database of collection • You probably don’t want to do this very often – that can be thousands of items long. • To make a backup of your database, which you should do frequently, there are better methods.
  26. 26. Circulate materials • Let’s see how to do the most frequent activity, which is checking materials in and out of the library.
  27. 27. Check in/Check out • Materials can be circulated using this software. • The due date is arbitrarily set for 2 weeks for all items – and should be aware of US holidays. • The “success” screen for checkouts will inform you of date due, so you can inform patron or put a due label on the item.
  28. 28. Renew • Renewal is a library staff function in V1 because of security reasons. • Patron can contact library staff to request an item be renewed. • Item will not be renewed if it’s on HOLD by another patron. • Library staff will be informed if item is already overdue. You may or may not choose to renew the book in that case.
  29. 29. Place Hold • Placing a HOLD on an item is a library staff function in V1.0. • Disallows checking out book to any other user than the one with the HOLD until or unless removed. • Holds do not expire. They can be manually removed, or will go away when the patron checks out the item. • Staff may remove HOLD.
  30. 30. Fines • Fines are computed or charged in this version. Will tell you that the item was overdue, and when it was due, so figure and charge the fine according to Library policy.
  31. 31. Search for items which are overdue. • Overdue screen allows you to enter a date which is the earliest you want to hear about. • The output of this gives you the information on the book, including: – Value or replacement cost. – The Card number or Patron number of the person who checked it out. – The due date
  32. 32. Lost/damaged materials. • Combine functions: • Look up book, possibly with the OVERDUE function. • Delete from database. • Look in your own files for information associating a person to the card number. • Assess cost to patron. • Place on YOUR list of items to replace.
  33. 33. Weeding • This can give you some assistance in selecting items for weeding. It does this searching for material which have not circulated since, are older than an arbitrary date as candidates for weeding.
  34. 34. To place restrictions on who can check out certain things. • There are no age functions, or card classifications. • If your library has items which may only be checked out by adults, that is the discretion of the library staff, and possibly a policy. • R-rated movie titles.
  35. 35. Intellectual freedom and library laws • To make it compliant with library laws throughout the world. Designed for US use, and perhaps it can be used in some other countries, and in other countries it cannot. • There are some simple changes in the software that would allow money to be displayed in another currency, and detection of holidays can be set to another location.
  36. 36. Requirements • Website. • Must have a website address (URL). The webhost must support MySQL and PHP. Most commercial ones do. • Watch so you are not paying for things you don’t need – like shopping carts or credit card payment processors – but you might find that it’s less costly to choose a website that provides them for everyone, and not use them. • Webmaster – to load the software, and set up the databases.
  37. 37. Webmaster • - Volunteer – Does someone in your community have a blog? - Students/Honor Society may have skills to create a database. Especially computer science students. - It is not difficult to do at this level. - You may be able to contract/hire one for a short time for your specific task (e.g., set up the database).
  38. 38. Books you or your Webmaster might find helpful • Building a Web Site For Dummies • The Really, Really, Really Easy Step-by-Step Guide to Building Your Own Website: For Absolute Beginners of All Ages by Gavin Hoole and Cheryl Smith • Build a Website for Free by Mark William Bell
  39. 39. Steps to getting this • Select a webhost that, minimally, supports MySQL and PHP. • Get the website, address (URL). • Download LibDatabase from broadwaterftl.org • Customize the pages and contact info for your library • Put your own picture in liblogo.jpg • Upload it • Use library.sql from the kit to set up your database. There’s usually a database wizard available from the webhost.
  40. 40. Customization • To customize LibDatabase for your library, you will need to change the following files. • - liblogo.jpg is a photograph or other image that represents your library. I have included one that Broadwater, NE is using for its library • - a "faded" photograph of a bookshelf. You may use this, or you may substitute another JPEG or GIF image that • represents your library - a photograph, artwork or logo. The size of the image uploaded will be maintained. • Suggested size is 265x150 pixels. • - LibMain.html - Insert specific information about your library, including its name, location, telephone number, • and email address in thefields enclosed in parentheses ( ). • - UserMain.html - Insert specific information about your library, including its name, location, telephone number, • and email address in thefields enclosed in parentheses ( ). • - consecuredb.inc - The information needs to be changed to reflect your SECURE username and password for your • MySQL database. • - conectdb.inc - The information needs to reflect your NONSECURE username and password for your • MySQL database-
  41. 41. You will need to change the following files for your own library. • - liblogo.jpg is a photograph or other image that represents your library. I - I have included one that Broadwater, NE is using for its library • - a "faded" photograph of a bookshelf. Is included You may use this, or you may substitute another JPEG or GIF image that represents your library - a photograph, artwork or logo. The size of the image uploaded will be maintained. Suggested size is 265x150 pixels.
  42. 42. You will need to change the following files for your own library. • - LibMain.html - Insert specific information about your library, including its name, location, telephone number, and email address in the fields enclosed in parentheses ( ). • - UserMain.html - Insert specific information about your library, including its name, location, telephone number, and email address in the fields enclosed in parentheses ( ). • - consecuredb.inc - The information needs to be changed to reflect your SECURE username and password for your MySQL database. • - conectdb.inc - The information needs to reflect your NONSECURE username and password for your MySQL database Search for a left paren in the files, to locate what you need to change.
  43. 43. Database Schema – or database layout • Another word for “database” is “file”. Database software just has it in a special format. • LibDatabase expects the “file” to contain certain information in certain places. The single most important of these is the index which it uses to efficiently find data in a large file.
  44. 44. Database schema.
  45. 45. Discussion • The field labeled ISBN which is 13 characters must be unique to find the item. • Some of the other information is required by LibDatabase software, but not the MySQL database. • Library.sql sets this up for you, using PHPMyAdmin on the webhost.
  46. 46. Customized Details • Name of your library, along with its address and phone number, email, and website address. Use a text editor, such as Notepad. • Photo or logo for your library. Again, look out for copyrighted photos. Take it yourself, or get whoever took it to give the rights use the photo to the library in writing.
  47. 47. Populate the database. • Big job to start from scratch on it. • Volunteer help was essential to doing it over a few months in my small library. Still do not have it complete. • It was a non-goal to use scanned data for input. For one thing, we don’t have an OCR reader, or barcode scanner, or barcodes. As the price goes down, there might be more call for it. • It might be possible to copy online records from some other system to this. That would depend on a lot of factors.
  48. 48. Word of advice • Back up the database from the web site frequently. Store multiple copies in multiple places.
  49. 49. Implementation • This is a 1.0 implementation of this software. It works good at my library. • Designer and Library Director are the same person – advantages and disadvantages. • Most of my volunteers are not familiar with the back-end of websites – most are limited to using a computer and navigating the web. • Gave me suggestions to clarify the menus • Help that comes up when you hover over the input item.
  50. 50. Some “like to have” functions are not yet implemented. • Setting library policy for such things as the loan period. It’s arbitrarily set at 2 weeks for everything. • The ability to have different loan periods for some items. • Better security. • Ability to change the theme – the color, the font, and so forth.
  51. 51. Shareware, with a Creative Commons Attribution-Sharealike 3.0 Unported License. Y Please share. • Use it, copy it, give copies away. You can even modify it, and you can include your name in the credits for what it is that you modified or improved. Just don’t charge for it – at least not more than to cover copying and mailing expenses. And, don’t commercialize it. • If you like it, we ask that you send a $10 donation to our Friends of the Library group when you can. http://broadwaterftl.org/donate.html
  52. 52. Please read the documentation! • There is a lot of information in the About.html file, that appears on the website after it is up, and is in the installation kit. • Readme.txt in the installation kit has useful information.
  53. 53. After you install it • If you don’t like it, I’d appreciate it, for now, to tell me what you don’t like, and maybe I can make a future modification. If you’ve got problems using it, chances are other people do too. • If you use it, please register it by emailing beth@broadwaterftl.org That will put you on our mailing list, so that we can inform you when new versions become available. • We do not distribute, sell, or share email addresses on this list. • Please report bugs that you find to beth@broadwaterftl.org If possible, include any “computerese” that appeared on your screen. • If you decide you don’t want to use it, don’t pay us.
  54. 54. No warranty. • LibDatabase Catalog V1.0 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

×