Pinakes

Complete Library Management System (ILS) - Circulation, OPAC, cataloging, reservations, loans, automatic notifications, plugin system, and Z39.50/SRU server

Full Stack Web DevelopmentPHPGPL-3.0

Abstract

Pinakes is an open-source Full Stack Web Development project. Complete Library Management System (ILS) - Circulation, OPAC, cataloging, reservations, loans, automatic notifications, plugin system, and Z39.50/SRU server. Pinakes is a self-hosted, full-featured ILS for schools, municipalities, and private collections. It focuses on automation, extensibility, and a usable public catalog without requiring a web team. It is built using PHP. The complete source code is publicly available on GitHub under the GNU General Public License v3.0, making it a useful reference for students building a Full Stack Web Development mini project or final-year project.

1. Introduction

Pinakes is a self-hosted, full-featured ILS for schools, municipalities, and private collections. It focuses on automation, extensibility, and a usable public catalog without requiring a web team.

Pinakes ships with a free companion Android app. Enable the bundled Mobile API plugin, point the app at your instance URL, and your members can browse the catalog, check real availability, borrow & reserve, read ebooks / listen to audiobooks, and manage their loans from the phone.

Highlights of the latest release are below. The full version-by-version history (v0.7.59 → v0.6.x) lives in CHANGELOG.md.

2. Objective

Complete Library Management System (ILS) - Circulation, OPAC, cataloging, reservations, loans, automatic notifications, plugin system, and Z39.50/SRU server

This project demonstrates how PHP can be applied to a real-world Full Stack Web Development problem.

4. Technology Stack

PHP
  • Metadata scraping from Open Library API
  • Fallback to Google Books when Open Library lacks data
  • Automatic cover lookup from Open Library with a secure Goodreads/Amazon CDN fallback
  • Subject mapping and language normalization
  • Configurable priority and caching options
  • eBook support (PDF, ePub) with download tracking
  • Audiobook streaming (MP3, M4A, OGG) with HTML5 player
  • Per-item digital asset management (unlimited files per book)

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • PHP 7.4+ with a web server (XAMPP / WAMP / LAMP)
  • MySQL / MariaDB
  • phpMyAdmin (optional)
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/fabiodalez-dev/Pinakes.git
cd Pinakes
  1. Clone or download this repository and upload all files to the root directory of your server.
  2. Visit your site's root URL in the browser — the guided installer starts automatically.
  3. Provide database credentials (database must be empty).
  4. Select language (Italian, English, French, or German).
  5. Configure organization name, logo, and email notifications.
  6. Create admin account and start cataloging.
  7. Remove/lock the installer/ directory (button provided on final step)
  8. Configure SMTP, registration policy, and CMS blocks from Admin → Settings
# Notifications every hour (8 AM - 8 PM)
  0 8-20 * * * /usr/bin/php /path/to/cron/automatic-notifications.php >> /var/log/biblioteca-cron.log 2>&1

  # Full maintenance at 6 AM (handles reservation/pickup expirations)
  0 6 * * * /usr/bin/php /path/to/cron/full-maintenance.php >> /var/log/biblioteca-maintenance.log 2>&1

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add role-based access control
  • Deploy on a VPS or cPanel hosting with a custom domain
  • Add automated tests and a CI pipeline

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Explain the frontend, backend and database layers of this application.
  2. How is user authentication and authorisation implemented?
  3. Describe the main database tables / collections and their relationships.
  4. Which REST APIs or routes are exposed and what do they return?
  5. How would you deploy this application to production?

9. Source Code & License

This project is developed by fabiodalez-dev and published on GitHub under the GNU General Public License v3.0. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on a Full Stack Web Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Full Stack Web Development Internship