Skip to main content
Version: Next

Library management

The Library module provides a complete solution for managing school library operations. It covers the full lifecycle from cataloging books, tracking physical copies, handling rentals, and managing reservations to monitoring circulation and enforcing library policies.


Operations → Library (segment: operations/library)

Sub-sectionPathDescription
Dashboardoperations/libraryOverview and quick actions
Booksoperations/library/booksBook catalog management
Copiesoperations/library/copiesPhysical copy tracking
Rentalsoperations/library/rentalsCheckout/return management
Reservationsoperations/library/reservationsHold requests

Library architecture

┌─────────────────────────────────────────────────────────────────────────┐
│ Library Management System │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ Book Catalog │ │
│ │ │ │
│ │ Title • Authors • ISBN • Category • Access Level │ │
│ │ │ │
│ └────────────────────────────────┬──────────────────────────────────┘ │
│ │ │
│ ┌────────────┴────────────┐ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────┐ ┌──────────────────────────────────┐ │
│ │ Physical Copies │ │ Reservations │ │
│ │ │ │ │ │
│ │ Barcode • RFID • Status │ │ Queue • Priority • Pickup │ │
│ │ Condition • Location │ │ Notifications • Expiry │ │
│ │ │ │ │ │
│ └────────────┬─────────────┘ └──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Rentals │ │
│ │ │ │
│ │ Checkout → Due Date → Renewals → Return → Fee Settlement │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Dashboard & Analytics │ │
│ │ │ │
│ │ Circulation Rate • Overdue Alerts • Popular Books • Activity │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘

Part 1: Dashboard

The library dashboard provides an at-a-glance view of library operations.

Dashboard metrics

MetricDescription
Total BooksUnique titles in catalog
Total CopiesPhysical items
Available CopiesReady for checkout
Active RentalsCurrently checked out
Overdue RentalsPast due date
Pending ReservationsWaiting in queue
Ready for PickupReserved books available
Circulation Rate% of copies in circulation

Copies by status breakdown

StatusDescription
availableReady for checkout
checked_outCurrently borrowed
reservedHeld for reservation
repairBeing repaired
lostReported lost
damagedDamaged condition

Quick actions

ActionDescription
New CheckoutOpen checkout dialog
Add BookAdd to catalog
Search CatalogFind books
View OverdueSee overdue list

Recent activity feed

Activity types tracked:

TypeDescription
checkoutBook checked out
returnBook returned
reservationNew reservation
overdueRental became overdue
new_bookBook added to catalog

Dashboard widgets

  1. Stat Cards — Key metrics with trends
  2. Quick Actions — Common tasks
  3. Overdue Alerts — Items needing attention
  4. Recent Activity — Live transaction feed
  5. Popular Books — Most borrowed titles

Part 2: Books (Catalog)

The book catalog manages bibliographic records for all library materials.

Book properties

FieldTypeDescription
idstringUnique identifier
schoolIdstringSchool association
titlestringBook title
subtitlestringOptional subtitle
isbnstringISBN-10
isbn13stringISBN-13
authorsarrayAuthor names
editorsarrayEditor names
illustratorsarrayIllustrator names
publisherstringPublisher name
publicationDatestringPublication date
editionstringEdition info
languagestringLanguage code
categoryenumBook category
deweyDecimalstringDewey classification
subjectAreastringSubject area
gradeLevelstringTarget grade
pagesnumberPage count
formatenumPhysical format
dimensionsstringSize dimensions
totalCopiesnumberTotal physical copies
availableCopiesnumberAvailable now
checkedOutCopiesnumberCurrently borrowed
damagedCopiesnumberDamaged count
lostCopiesnumberLost count
shelfLocationstringDefault location
sectionstringLibrary section
isAvailableForRentalbooleanCan be borrowed
rentalDurationDaysnumberDefault loan period
lateFeePerDaynumberOverdue fee
replacementCostnumberReplacement value
accessLevelenumWho can borrow
restrictedbooleanHas restrictions
restrictionReasonstringWhy restricted
hasEbookVersionbooleanE-book available
ebookUrlstringE-book link
coverImageUrlstringCover image
descriptionstringBook description
summarystringShort summary
acquisitionDatestringWhen acquired
acquisitionCostnumberPurchase cost
donorstringDonor name
timesBorrowednumberBorrow count
averageRatingnumberUser rating
reviewsCountnumberReview count
isActivebooleanActive in catalog
statusenumBook status
tagsarrayClassification tags

Book categories

CategoryDescription
textbookCourse textbooks
referenceReference materials
fictionFiction books
non_fictionNon-fiction books
periodicalMagazines, journals

Book formats

FormatDescription
hardcoverHardcover binding
paperbackPaperback binding
ebookElectronic format

Book statuses

StatusDescription
availableAvailable in catalog
processingBeing cataloged
repairUnder repair
lostAll copies lost
withdrawnRemoved from circulation

Access levels

LevelDescription
all_studentsAvailable to all students
specific_gradesRestricted to certain grades
teachers_onlyStaff only

Adding a book

  1. Navigate to Library → Books
  2. Click Add Book
  3. Fill required fields:
    • Title (required)
    • Authors (at least one required)
    • Category (required)
    • Format (required)
    • Language (required)
    • Access level (required)
  4. Optional: Add ISBN for auto-fill
  5. Configure rental settings:
    • Rental duration (days)
    • Late fee per day
    • Replacement cost
  6. Upload cover image
  7. Save book

Google Books integration

Search Google Books to auto-populate:

  1. Click Search Google Books
  2. Enter title or ISBN
  3. Select from results
  4. Review and adjust auto-filled data
  5. Save book

Book detail view

TabContent
OverviewTitle, authors, description, cover
CopiesList of physical copies
RentalsActive and past rentals
ReservationsCurrent hold requests
StatisticsBorrow history, ratings

Filtering books

FilterOptions
CategoryTextbook, reference, fiction, etc.
FormatHardcover, paperback, ebook
StatusAvailable, processing, etc.
Access levelAll students, specific grades, etc.
Available onlyHide books with no copies
Subject areaSubject filter
Grade levelGrade filter
LanguageLanguage filter

Part 3: Copies (Physical Items)

Copies represent individual physical items that can be checked out.

Copy properties

FieldTypeDescription
idstringUnique identifier
bookIdstringParent book reference
schoolIdstringSchool association
barcodestringBarcode identifier
rfidTagstringRFID tag identifier
copyNumbernumberCopy sequence number
statusenumCurrent status
conditionenumPhysical condition
shelfLocationstringCurrent location
sectionstringLibrary section
acquisitionDatestringWhen acquired
acquisitionSourcestringSource/vendor
acquisitionCostnumberPurchase cost
notesstringStaff notes

Copy statuses

StatusDescriptionAvailable
availableReady for checkout
checked_outCurrently borrowed
reservedHeld for reservation
repairBeing repaired
lostReported lost
withdrawnRemoved from circulation

Copy conditions

ConditionDescription
excellentLike new
goodMinor wear
fairVisible wear
poorHeavy wear

Adding copies

Single copy:

  1. Navigate to Library → Copies or Book Detail → Copies
  2. Click Add Copy
  3. Select or confirm book
  4. Enter identifiers:
    • Barcode (required)
    • RFID tag (optional)
    • Copy number (auto-assigned)
  5. Set initial status and condition
  6. Set location
  7. Save copy

Bulk add copies:

  1. Click Add Multiple Copies
  2. Select book
  3. Enter quantity
  4. System generates barcodes
  5. Confirm and save

Copy management actions

ActionDescription
ViewSee copy details
EditUpdate copy info
Change statusUpdate availability
Change conditionUpdate physical state
CheckoutStart new rental
DeleteRemove copy

Batch operations

Perform actions on multiple copies:

OperationDescription
Update statusChange status in bulk
Update conditionChange condition in bulk
Update locationMove copies
DeleteRemove multiple copies

Copy table columns

ColumnDescription
BarcodeCopy identifier
BookParent book title
StatusCurrent status badge
ConditionPhysical condition
LocationShelf location
Last activityMost recent action

Part 4: Rentals (Checkouts)

Rentals track the borrowing lifecycle from checkout to return.

Rental properties

FieldTypeDescription
idstringRental identifier
bookIdstringBook reference
copyIdstringCopy reference
studentIdstringStudent borrower
teacherIdstringTeacher borrower
schoolIdstringSchool association
checkoutDatedatetimeWhen checked out
dueDatedatetimeWhen due back
returnDatedatetimeWhen returned
renewalCountnumberTimes renewed
maxRenewalsnumberMax allowed renewals
lastRenewalDatedatetimeLast renewal
statusenumRental status
isOverduebooleanPast due date
daysOverduenumberDays past due
conditionAtCheckoutenumCondition when borrowed
conditionAtReturnenumCondition when returned
damageReportedbooleanDamage flagged
damageDescriptionstringDamage details
lateFeeChargednumberLate fee amount
damageFeeChargednumberDamage fee amount
totalFeenumberTotal fees owed
feePaidbooleanFees settled
feePaidDatedatetimeWhen paid
reminderSentCountnumberReminders sent
checkedOutBystringStaff who processed
returnedTostringStaff who received
notesstringAdditional notes

Rental statuses

StatusDescription
activeCurrently checked out
returnedReturned successfully
overduePast due date
lostReported lost
damagedReturned damaged

Checkout flow

Select Book/Copy


Select Borrower (Student or Teacher)


Record Condition


Confirm Due Date


Process Checkout


┌─────────────────┐
│ Active Rental │
└────────┬────────┘

┌────┴────┐
│ │
On time Overdue
│ │
▼ ▼
Return Reminders
│ │
└────┬────┘


Check Condition

┌────┴────┐
│ │
OK Damaged
│ │
▼ ▼
Complete Assess fee


Complete

Creating a checkout

  1. Navigate to Library → Rentals
  2. Click New Checkout
  3. Search and select book
  4. Select available copy (or auto-select)
  5. Search and select borrower:
    • Student tab — Select student
    • Teacher tab — Select teacher
  6. Record condition at checkout
  7. Confirm due date (auto-calculated)
  8. Add notes (optional)
  9. Click Checkout

Processing a return

  1. Find rental in list or search
  2. Click rental row or Return action
  3. Select condition at return
  4. If damaged:
    • Check "Report damage"
    • Enter damage description
    • System calculates damage fee
  5. If overdue:
    • System calculates late fee
  6. Review total fees
  7. Click Process Return
  8. Collect payment if fees owed

Renewing a rental

  1. Find active rental
  2. Click Renew
  3. Confirm new due date
  4. Add notes (optional)
  5. Save renewal

Renewal limits:

  • Default max renewals: 2
  • Cannot renew if reserved by others
  • Cannot renew overdue items

Marking as lost

  1. Find rental
  2. Click Mark Lost
  3. System marks copy as lost
  4. System calculates replacement fee
  5. Confirm lost status

Fee management

Fee typeCalculation
Late feeDays overdue × Late fee per day
Damage feeAssessed by staff
Lost/ReplacementBook replacement cost

Recording fee payment

  1. Find rental with fees
  2. Click Record Payment
  3. Enter amount paid
  4. Select payment method
  5. Add notes
  6. Confirm payment

Rental filters

FilterOptions
StatusActive, returned, overdue, lost, damaged
Overdue onlyShow only overdue
Fee statusPaid, unpaid
Borrower typeStudent, teacher
Date rangeCheckout date range

Rental table columns

ColumnDescription
BookBook title
BorrowerStudent/teacher name
Checkout dateWhen borrowed
Due dateWhen due
StatusCurrent status
Days overdueIf past due
FeesOutstanding amount

Part 5: Reservations (Holds)

Reservations allow users to request books that are currently unavailable.

Reservation properties

FieldTypeDescription
idstringReservation ID
bookIdstringRequested book
bookCopyIdstringSpecific copy (optional)
studentIdstringStudent requester
teacherIdstringTeacher requester
schoolIdstringSchool association
statusenumReservation status
prioritynumberQueue priority
queuePositionnumberPosition in queue
requestedAtdatetimeWhen requested
holdExpiresAtdatetimeHold expiry
pickupLocationstringPickup location
pickupByDatedatetimePickup deadline
fulfilledAtdatetimeWhen fulfilled
canceledAtdatetimeWhen canceled
cancellationReasonstringWhy canceled
noShowCountnumberMissed pickups
notificationsSentnumberNotifications sent
notesstringStaff notes
isActivebooleanActive reservation

Reservation statuses

StatusDescription
activeWaiting in queue
fulfilledBook picked up
cancelledUser or staff canceled
expiredHold period expired
no_showUser didn't pick up

Reservation flow

Student/Teacher requests book


┌─────────────────┐
│ Active │ ← Position in queue
└────────┬────────┘

Copy becomes available


┌─────────────────┐
│ Ready for │ ← Notification sent
│ Pickup │
└────────┬────────┘

┌────┴────┐
│ │
Picked up Not picked up
│ │
▼ ▼
Fulfilled No Show / Expired

Creating a reservation

  1. Navigate to Library → Reservations
  2. Click New Reservation
  3. Search and select book
  4. Search and select requester
  5. Set pickup location (optional)
  6. Set priority (optional)
  7. Add notes (optional)
  8. Save reservation

Reservation from book detail

  1. View book details
  2. Click Reserve
  3. Select requester
  4. Confirm reservation

Fulfilling a reservation

When copy becomes available:

  1. System notifies requester
  2. Copy status changes to "reserved"
  3. Staff finds reservation in list
  4. Staff holds copy at pickup location
  5. When requester arrives:
    • Click Fulfill
    • Proceed to checkout
  6. Reservation marked fulfilled

Canceling a reservation

  1. Find reservation
  2. Click Cancel
  3. Enter cancellation reason
  4. Confirm cancellation

No-show handling

If requester doesn't pick up by deadline:

  1. System marks as "no_show"
  2. Copy returns to available
  3. Next in queue is notified
  4. No-show count incremented

Queue position

Reservations are fulfilled in order:

  1. Priority (if set)
  2. Request date (first come, first served)

Notification types

EventNotification
Book available"Your reserved book is ready"
Pickup reminder"Please pick up your book by..."
Expiry warning"Your hold expires soon"
Queue update"Your position in queue is now..."

Reservation filters

FilterOptions
StatusActive, fulfilled, cancelled, etc.
BookSpecific book
RequesterStudent or teacher
Ready for pickupAvailable now

Batch operations

The library supports bulk operations for efficiency.

Available batch operations

OperationDescriptionApplies to
Update statusChange item statusCopies
Update conditionChange conditionCopies
Update locationMove itemsCopies
DeleteRemove itemsCopies, books
CheckoutBulk checkoutCopies
ReturnBulk returnRentals
Add tagsTag itemsBooks

Using batch operations

  1. Select items using checkboxes
  2. Selection count appears in toolbar
  3. Click Batch Actions
  4. Choose operation
  5. Configure parameters
  6. Review confirmation
  7. Execute operation
  8. View results summary

Batch operation results

ResultDescription
SuccessItem processed
FailedError occurred
SkippedNot applicable

Permissions required

ActionRequired permission
View dashboardlibrary.view
View bookslibrary.books.view or library.view
Add booklibrary.books.create or library.create
Edit booklibrary.books.update or library.update
Delete booklibrary.books.delete or library.delete
View copieslibrary.copies.view or library.view
Add copylibrary.copies.create or library.create
Edit copylibrary.copies.update or library.update
Delete copylibrary.copies.delete or library.delete
View rentalslibrary.rentals.view or library.view
Checkoutlibrary.rentals.create or library.create
Returnlibrary.rentals.update or library.update
View reservationslibrary.reservations.view or library.view
Create reservationlibrary.reservations.create or library.create
Cancel reservationlibrary.reservations.update or library.update

Best practices

Cataloging

  • Use ISBN when available for accurate metadata
  • Maintain consistent category assignments
  • Upload cover images for visual browsing
  • Set appropriate access levels
  • Configure rental terms per book type

Copy management

  • Assign unique barcodes to all copies
  • Perform regular condition audits
  • Update locations when shelving
  • Mark withdrawn copies instead of deleting

Circulation

  • Process returns promptly
  • Send overdue reminders
  • Follow up on lost items
  • Collect fees before checkout

Reservations

  • Notify users promptly when available
  • Set reasonable pickup windows
  • Process no-shows consistently
  • Review queue regularly

Troubleshooting

Cannot checkout book

Causes:

  • No available copies
  • Borrower at loan limit
  • Book restricted for borrower grade
  • Borrower has unpaid fees

Fix:

  1. Check copy availability
  2. Check borrower's active rentals
  3. Verify access level
  4. Check fee status

Copy status not updating

Causes:

  • Concurrent update
  • Permission issue
  • Validation error

Fix:

  1. Refresh the page
  2. Verify permissions
  3. Check validation messages

Reservation not fulfilled

Causes:

  • Copy still checked out
  • Copy in repair/lost
  • Higher priority reservation

Fix:

  1. Check copy status
  2. Review reservation queue
  3. Contact current borrower if overdue

Fees not calculating

Causes:

  • Fee settings not configured
  • Book missing fee amounts

Fix:

  1. Check book rental settings
  2. Configure late fee per day
  3. Configure replacement cost