=== MapArc Library ===
Contributors: bobstanleygardner
Tags: library, catalog, lending, qr
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 0.12.23
License: GPLv2 or later

Independent library catalogue, circulation, student profile and QR workflow for the MapArc ecosystem.

== Description ==

= MapArc Library — Free, Full-Featured Library Management for WordPress =

**Free, full-featured, forever.**

MapArc Library is a WordPress library management system for organizing books, managing borrowers, tracking copies, loans, returns, and reservations directly from your WordPress website.

Build and maintain a searchable library catalog, manage physical copies, organize titles by department, register borrowers, issue and return items, manage reservations, and monitor library activity — without moving your library operations to a separate platform.

Designed for schools, colleges, nonprofits, community libraries, training organizations, institutions, and other organizations that need practical library management inside WordPress.

**Your catalog. Your borrowers. Your library. Your WordPress.**

= Build and Manage Your Library Catalog =

Create and maintain a structured catalog of library resources directly from WordPress.

MapArc Library supports management of titles and individual physical copies, allowing library staff to distinguish between the bibliographic record for an item and the copies that are actually available for circulation.

Organize titles using departments and maintain the information required to operate a practical institutional library.

= Manage Borrowers =

Maintain borrower records and connect library activity to the people using your collection.

Library staff can manage borrower information and use it as part of the circulation workflow for loans, returns, and reservations.

= Loans and Returns =

Manage day-to-day circulation directly from WordPress.

MapArc Library provides workflows for issuing library items to borrowers, recording returns, and maintaining loan information so staff can see how library resources are being used.

Individual copy tracking helps ensure circulation activity relates to the actual copy being borrowed rather than only the catalog title.

= Reservations =

Allow library demand to be managed even when an item is not immediately available.

MapArc Library includes reservation management so borrower requests can be recorded and managed as part of the library workflow.

= Departments and Collection Organization =

Organize your catalog into departments to make larger or institution-specific collections easier to manage.

Departments can be used to structure collections according to the needs of your organization, school, institution, or library.

= Library Staff and Administration =

MapArc Library includes dedicated library administration functionality for managing catalog and circulation operations.

Library-specific roles and capabilities help separate library responsibilities from general WordPress administration.

This makes it possible for designated library staff to manage library operations without requiring unrestricted access to the entire WordPress website.

= Activity and Analytics =

Keep track of library operations with activity and analytics functionality built into the library management system.

MapArc Library maintains operational information around borrowers, titles, copies, loans, reservations, and staff activity to support day-to-day administration and reporting.

= Built for WordPress =

MapArc Library runs directly within WordPress.

Your library catalog and operational data remain part of your WordPress installation rather than requiring a separate hosted library-management platform for the plugin's core functionality.

The plugin is designed to work naturally within the WordPress administration environment while providing dedicated workflows for library staff.

= MapArc Integration =

MapArc Library can operate as part of the broader MapArc ecosystem.

Integration support allows MapArc Library to work with compatible MapArc components while keeping library-specific functionality independently organized.

= Who Is MapArc Library For? =

MapArc Library can be used by:

* Schools and educational institutions
* Colleges and training organizations
* Nonprofits and NGOs
* Community libraries
* Organizational resource centers
* Professional associations
* Learning and skills-development programs
* Small institutional libraries
* Organizations already managing their website through WordPress

= Key Features =

* Library title and catalog management
* Individual copy management
* Borrower management
* Loan and return workflows
* Reservation management
* Department-based organization
* Library staff administration
* Dedicated library roles and capabilities
* Library activity tracking
* Library analytics and operational data
* WordPress-native administration
* MapArc ecosystem integration
* Open-source WordPress plugin

= Privacy =

MapArc Library stores information required to provide library-management functionality, including information relating to borrowers, library resources, copies, loans, reservations, and library operations.

Website administrators are responsible for configuring and operating their WordPress website and library processes in accordance with applicable privacy and data-protection requirements.

MapArc Library's core library-management functionality runs within the WordPress installation.

== Installation ==

1. Upload the `maparc-library` folder to `/wp-content/plugins/`, or install the plugin ZIP through **Plugins → Add New → Upload Plugin**. Then activate **MapArc Library**.
2. Open the plugin-created `Library Desk` page while signed in as an Administrator or Librarian.
3. Choose `Add Books`, enter/scan the book details, choose the number of physical copies, and save.
4. Print the generated copy QR labels immediately or use Bulk QR Labels later.
5. Students use the plugin-created `My Library` page to view their personal QR and current loans.

== Frequently Asked Questions ==

= Who created MapArc Library? =

MapArc Library was originally created by Bob Stanley Gardner in 2026.

= Does MapArc Library create separate student accounts? =

No. It uses native WordPress users and adds Library membership, borrowing, verification, and reservation data to that identity.

= Does MapArc Library require MapArc Core? =

No. MapArc Core integration is optional and feature-detected.

== External Services ==

MapArc Library does not require an external service for its catalogue, circulation, membership, reservations, QR rendering, or camera-scanning code. Email notifications are sent through the WordPress `wp_mail()` configuration chosen by the site owner. The plugin does not download executable JavaScript from a third-party CDN.

== Privacy ==

MapArc Library stores Library membership details, borrowing history, reservation/token records, email-verification state, and Library staff department assignments in the WordPress database. Site administrators are responsible for configuring retention and privacy practices appropriate to their institution. Verification tokens are stored as HMAC values rather than plaintext tokens and expire after use or timeout.

== Source Code and Build Process ==

MapArc Library ships its editable first-party PHP, JavaScript, and CSS directly in the plugin package. No build step is required to recreate those first-party assets. The bundled `assets/vendor/qrcode.min.js` file is third-party QRCode.js code used only for QR rendering; its provenance and license are documented in `THIRD-PARTY-NOTICES.txt`.

== Changelog ==

= 0.12.11 =
* Restored the Safari/iPhone Library QR camera-decoding fallback used by earlier releases.
* Native BarcodeDetector remains preferred when available; manual/hardware entry remains available.
* No student registration/password changes.

= 0.12.9 =
* Fixed book editing so Edit opens a distinct pre-populated edit state instead of the Add Book form.
* Preserved catalogue search context when opening and saving edits.
* Kept department-scoped editing authorization intact.

= 0.12.6 =
* Catalogue now opens with the book collection already visible in an alphabetically sorted, scrollable list.
* Added instant type-ahead filtering: title-prefix matches are prioritised as the librarian types, with author/ISBN/language fallback matching.
* Removed the Catalogue Search/Clear submit controls; clearing the field restores the full visible collection immediately.

= 0.12.5 =
* Added Memberships Approved to individual librarian statistics and Head Librarian Staff Activity reporting.
* Uses the existing membership approval audit fields, so no database schema change is required.

= 0.12.4 =
* Reworked the Library Desk branding as a compact, intentional white logo card instead of attempting transparency on the raster logo.
* Reduced the logo footprint and tightened the Desk hero spacing while preserving librarian identity, personal statistics, and the default-loan policy.

= 0.12.3 =
* Simplified the front-end Library Desk hero so the WordPress page title is not repeated inside the plugin panel.
* Removed redundant MapArc Library text from the Desk hero when the MapArc Library logo is already displayed.
* Updated the bundled MapArc Library logo asset with a transparent background for seamless placement on the Desk panel.
* Kept librarian identity, personal activity statistics, default-loan policy, Catalogue, and Head Librarian Staff Activity functionality unchanged.

= 0.12.2 =
* Added MapArc-branded Library Desk identity with the signed-in librarian name and personal activity counters.
* Added a searchable, scrollable front-end Catalogue tab with copy availability.
* Added per-librarian attribution for newly added catalogue titles; issue and return attribution continues to use the existing circulation audit fields.
* Added the clib_view_staff_activity capability and MapArc Head Librarian convenience role.
* Added a Head Librarian-only Staff Activity tab with per-librarian and overall activity totals.
* Database schema version 10 adds created_by attribution to catalogue titles.

= 0.12.1 =
* WordPress.org Plugin Check follow-up for request-processing helpers.
* Documented that helper-level POST reads occur only after their owning admin-post handlers verify action-specific nonces.
* Reworked email settings input into explicit allow-listed, type-sanitized fields before service validation.
* No schema, authorization, account, catalogue, circulation, reservation, or MapArc Core contract changes.

= 0.12.0 =
* WordPress.org review-preparation release aligned with the approved MapArc LMS authorship precedent.
* Established Bob Stanley Gardner as original creator/author in plugin metadata, readme, and first-party source notices.
* Hardened request handling by allow-listing and sanitizing department, catalogue, copy, email-setting, and student-profile inputs before repository/service handoff.
* Removed the runtime jsDelivr/jsQR executable-code fallback; camera scanning now uses the browser BarcodeDetector API with manual/hardware-scanner fallback.
* Added submission/readme documentation for source, bundled third-party code, privacy, and external-service behavior.
* Preserved existing clib_* capabilities, database tables, shortcodes, public IDs, admin URLs, and MapArc Core integration contracts.

Older release history is available in `changelog.txt`.
