Skip to content

lehigh-university-libraries/folio-offline-shelf-reading

Repository files navigation

FOLIO Offline Shelf Reading

A shelf-reading (inventory check) process for FOLIO items. Using a laptop, a barcode scanner, and a cart.

Design Goals

  • Read one section at at time, with up-to-date inventory data (no pre-loading).
  • Do the actual shelf-reading quickly, without looking at the laptop screen unless something goes wrong.
  • Fix minor shelf order problems quickly, while recording bigger problems for later.
  • Quickly record condition issues with no typing.
  • Work without network traffic while in the stacks, so good Wi-Fi doesn't matter.
  • Store (almost) all data in FOLIO to maintain a single source-of-truth.

How it Works / Usage Example

Step 1: Scan the start and end barcodes of a given range. The items within the range are loaded.

  • Note that three items have a listed Item Status. The item status is listed whenever it's not Available. These items are in the expected call number range (and location) but should not be on the shelf.

The Shelf Reading web application, showing input fields for a start and end barcode, and a table of items falling within that range.

Step 2: Scan each item in order. If an item has damage, scan a damage barcode as well.

  • The Shelf Status of each scanned item is marked as "Present", except for the Missing item which was unexpectedly found on the shelf and marked accordingly as "Unavailable item is on shelf."

  • Two scanned items were discovered to have condition issues, so a condition barcode was scanned right after the item barcode. The Shelf Condition column lists the scanned condition of these items: "Major concern" or "Spine label needs replacement."

The same table, but with the Shelf Status column marked "Present" for several items and "Unavailable item is on shelf" for one.

  • When an item is scanned that falls within this range but should have been shelved before the previously scanned item, a popup alerts the user to fix the order.

A popup reads "Check and fix the shelving order of the last two books scanned."

  • When an item is scanned that's out of the range entirely, the user is prompted to move it to a cart to figure out afterwards.

A popup reads "Barcode not found in this range.  Please move the item to the cart."

Step 3: Click "Save to FOLIO" to save and mark the items as appropriate.

  • The green background shows which rows were processed and results saved successfully to FOLIO.
  • The Result column shows
    • "Saved" for the scanned items.
    • "Marked as missing" for the items not scanned.

The same table again, but with a green background for every proceessed row.  The result column shows "Saved" for most rows and "Marked as missing" for one.

In FOLIO:

  • The processed items are all marked with a statistical code recording the inventory cycle.

A statistical code of type "Inventory" stating the inventory cycle "Shelf Reading 2025"

  • An "Inventory" type item note records the shelf status, date/time and username of each item inventoried.
  • For items with a scanned condition barcode, a second "Inventoried Condition" type item note records the condition.

Two item notes

Finally, an email is sent to a configured list of users, summarizing the results of shelf reading that range.

Operating Modes

The application supports several operating modes.

A drop-down labelled "Mode" with the value "Range" selected

Range

The default Range mode is for scanning a section of books at a time, i.e. one or more shelves.

Individual Items

Individual Items mode is for scanning (one or more) individual items that are not meant to be shelved together. The items will be marked Present, and processed just like Present items in range mode.

This might be used for items that were discovered out-of-place earlier using Range mode and are now being re-shelved in the correct location.

Condition Fix

Condition Fix will remove any condition notes present for the scanned items. It will not affect any items with a set item_damage_status. See the configuration file for details.

This is meant for minor, fixable conditions like replacing a spine label. This mode can be used after the condition is fixed.

Dependencies

  • FOLIO
  • MetaDB
  • Python

Configuration & Deployment

  1. Create and configure config.properties based on the example.
    • This includes creating FOLIO statistical codes and item note types as specified in the example file.
  2. Clone this repo.
  3. Start docker.
git clone https://github.com/lehigh-university-libraries/folio-offline-shelf-reading
cd folio-offline-shelf-reading
# cp config/config.properties.example config/config.properties
# make edits to config/config.properties
docker run \
  -v ./:/app
  -p 8080:8080 \
  --rm \
  --name folio-offline-shelf-reading \
  ghcr.io/lehigh-university-libraries/folio-offline-shelf-reading:main

Custom Shelving Order

In some cases, an item's FOLIO-generated shelving order field may not be sufficient to sort items correctly. See for example a constraint on Dewey cutter numbers.

If an item has a note of type Shelving order, the value in that field is interpreted as a local shelving order, and is used as a sorting value instead of the item's shelving order field. The sort logic looks to both fields, so only those items that require a custom local shelving order field need that note defined.

The FOLIO Update Local Shelving Order tool adds these items notes to the relevant items, using FOLIO Shelving Order to generate the local shelving order.

Attribution

About

Shelf reading (inventory check) process for FOLIO items

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •