Skip to content

Repository files navigation

📚 Unity Library

A school-library circulation system built on Frappe v15.

Issue, return and renew books at a fast counter; bulk-catalogue stock with ISBN auto-lookup and QR labels; track every student's borrowing history; and run circulation & inventory reports.


What it is

Library Management turns a Frappe/ERPNext site into a multi-branch school library system. It is tightly integrated with the Student record (from the Education module), so a student's borrowed books appear right on their profile, and the librarian works from a single, scanner-friendly Library Counter.

✨ Key features

  • Fast circulation desk — fetch a student, scan books, and issue / return / reissue in batches.
  • Multi-book transactions — one transaction can hold many copies.
  • Reissue (renew) — extend a due date by the loan period without returning the book; renewals are counted.
  • Borrowing history — full issue/return history on the counter and on the Student form.
  • Bulk book intake — maintain books per branch/room/shelf with inline editing.
  • ISBN auto-lookup — fetch title/author/publisher/pages from Google Books / Open Library, with an optional AI cover-extraction fallback.
  • QR codes — generate per-book QR codes and print 3 labels per book.
  • Inventory tracking — quantity / available / issued, per branch and shelf.
  • 5 built-in reports — Book Issue Register, Overdue Books, Most Issued Books, Library Stock Summary, Unavailable Books.

📸 Screenshots

Library Counter Add Library Books
Library Counter Add Library Books

🎬 Feature demos

Issue books Reissue (renew) Return books
Issue Reissue Return
Issue / Return history Reports menu Bulk book intake
History Reports Add Books
ISBN metadata auto-fill QR label printing
ISBN auto-fill QR printing

🚀 Quick start

Requirements: a Frappe Bench running Frappe v15, Python ≥ 3.10, and the Education app — it provides the Student and School doctypes this app builds on, so install it first. The qrcode Python package is installed automatically.

cd $PATH_TO_YOUR_BENCH

# 1) Education first — provides Student + School
bench get-app https://github.com/frappe/education
bench --site <your-site> install-app education

# 2) Then this app
bench get-app https://github.com/UnityAppSuite/unity_library --branch library-revamp
bench --site <your-site> install-app library_management
bench --site <your-site> migrate     # syncs doctypes and registers the reports

Then open Library Counter (/app/library-counter) to start, and set your Loan Period in Library Management Settings.

📖 Documentation

Guide For whom
User Guide Librarians & admins — how to run the desk, intake, reports
Technical Reference Developers — data model, API, hooks, migrations
Reports Both — the five reports, filters and sources
Flows & Diagrams Both — Mermaid diagrams of every flow + the data model

⚙️ Configuration

Configure behaviour in Library Management Settings (a Single doctype): loan period, external metadata lookup, AI fallback (key/model), default take-home, and the branch-override role. See the User Guide → Settings.

🤝 Contributing

This app uses pre-commit for formatting and linting. Please install pre-commit and enable it:

cd apps/library_management
pre-commit install

Configured tools: ruff, eslint, prettier, pyupgrade. See the Technical Reference → Developer setup for the dev workflow (bench build, migrate, reload-doc).

📄 License

MIT

About

Open-source school library circulation system built on Frappe v15 — issue/return/reissue, ISBN + QR cataloguing, and circulation reports.

Topics

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages