Operations
Library setup and usage
Catalog, circulation, reservations, fines, and student self-request.
Operations guide for day and boarding schools.
Last updated August 29, 2026
Library setup is short but order-dependent. The loan period, fine rate, grace days, per-student cap, and reservation hold length are read at the moment each loan or return is written, so a policy change never re-prices loans that are already open. Get the policy right before the first issue, and treat student self-request as the last switch you flip, because it is the only part of the module a learner can drive without a librarian in the room.
Setup workflow
- Configure loan period, fines, and auto-fulfill at /settings/library.
- Enable or disable student self-request and reservation-ready notifications.
- Import or add catalog at /books and /libraries.
- Train librarian on issue, reserve, fulfill, and return flows.
What each setting actually changes
| Setting | Effect | Default |
|---|---|---|
| Loan period days | Due date offered when a book is issued | 14 |
| Fine per day | Charge for each whole day late past the grace period | 5 |
| Grace period days | Late days ignored before the fine starts | 0 |
| Due reminder days before | How early the reminder job warns a borrower | 3 |
| Max books per student | Cap applied to student self-request only | 3 |
| Reservation hold days | How long a hold survives before it expires | 3 |
| Auto-fulfil reservations | Issue the next hold automatically on return | Off |
| Lost replacement / damaged fine | Charges applied on a lost or damaged outcome | 500 / 200 |
Usage workflow
- Librarian: search catalog → issue or place reservation → set due date.
- Reservations tab: queue rank → fulfill (issues copy) or cancel.
- Return: search active lending → mark returned or lost; overdue fine per settings.
- Student: /my-library - browse, request/reserve, view active loans.
Where it goes wrong
- Skipping the reminder cron. Reservation expiry is in scripts/run-school-cron.sh but the due-reminder job is not, so without a separate schedule for POST /api/library/cron/reminders nothing is ever marked OVERDUE and no borrower is warned.
- Opening self-request before setting the cap. The default of three concurrent loans applies immediately, and the first thing families notice is a refusal they do not understand.
- Turning auto-fulfil on in a school with a single busy counter. The next reader is issued the book without being present, so the loan clock starts before they collect it.
- Marking a book lost to clear the desk. That permanently reduces total copies and charges the replacement value; use it only when the copy really is gone.
- Deleting a title with open loans instead of deactivating it. Deactivating blocks new issues while leaving history and fines intact.
Handoff to fees
A fine on a student borrower leaves the library module entirely. It becomes a one-time fee instance under fee type code LIB_FINE, due fourteen days later, created against the active academic year, with the student and their linked parents notified and pointed at /fees/me. The fee type and its structure are created on first use, so nobody has to prepare them. From that point the amount is a finance item: collection, receipts, and any waiver all happen in the fees module, and the library screens have no way to reverse it.
Common questions
Quick answers in plain language.
What order should library setup happen in?+
Circulation policy at /settings/library first, then the catalog at /books and /libraries, then student self-request last. Policy values are copied into each loan when it is created, so loading the catalog before the policy leaves early loans priced on the defaults.
Who is allowed to issue and return at the desk?+
Only Platform Admin and staff whose staffType is Librarian. Teachers and leadership can open /libraries and read the catalog, lendings, and analytics, but every issue, return, fulfil, and settings change returns 403 for them.
A student says the request button is missing at /my-library. What now?+
Either student self-request is switched off in /settings/library, or the student has already reached the maximum books per student cap. Both produce a refusal from POST /api/my-library/request rather than a silent failure - the message names which one applies.
Related searches
School leaders and IT teams often search for: how to library workflows in school management software, best school transport software for K-12 schools, Schoolyi library workflows guide, library workflows step by step, school bus tracking app, library management software, and school inventory management.

