gitmyhub

SchoolLibraryManagementSystem

PHP ★ 13 updated 29d ago

A Laravel web app for managing a school library, track books, borrowers, checkouts, and returns through a browser interface with a single admin login.

PHPLaravelMySQLBladeComposerbcryptsetup: moderatecomplexity 3/5

This is a web application for managing a school library, covering the basics of tracking books, borrowers, lending records, and returns. It is built with Laravel, which is a PHP framework that follows the MVC pattern: models define the data, views handle what users see in the browser, and controllers coordinate the logic between them.

The database has four main tables. Books and borrowers are independent records. A borrowed_books table records when a borrower checks out a book, and a returned_books table records when that book comes back. A database-level rule ensures you cannot record a return unless there is a matching borrow record, which prevents data errors like returning a book that was never logged as borrowed.

The interface covers five sections: adding books, adding borrowers, recording a borrowing, managing returns, and a report page. The returns section is the most complete, supporting full create, read, update, and delete operations. The other sections are insert-only, so their records are not editable through the interface once created. The report page shows all borrowing and return activity grouped by borrower.

Login is session-based with a single admin account created during setup. Passwords are stored using bcrypt, which is a standard one-way hashing approach, and the app enforces a password policy requiring a mix of uppercase letters, lowercase letters, digits, and symbols.

Setup requires PHP 8.2 or later, Composer (PHP's package manager), and a MySQL database. Node.js is not needed because the views use Laravel's built-in Blade templating rather than a JavaScript framework. After cloning and configuring the environment file, running two commands creates the database tables and seeds the default login.

Where it fits