An automated library management system developed in Laravel 4.2 PHP MVC Framework

Overview

Library Management System

An automated system to manage a public library. Admin panel for librarians to control and manage the system easily through an interactive interface.

Development

The backend of the system is developed on Laravel 4.2 PHP MVC Framework and requires PHP 5.6 with the appropriate MCrypt extension. The front end is built on Edmin Responsive Bootstrap Admin Template (Demo) which is built on Bootstrap v2.2.2 using jQuery and Underscore-Dot-JS

Contribute

  • For reporting bug about an incorrect file not being processed, open a new issue.
  • PRs are always welcome to improve exisiting system.

Setup

Prerequisite: Install MySQL (for Linux)

If you don't already have the MySQL Database Server installed, you will need to install it to use this project. If it is installed, you can skip to step 4.

  1. Oracle provides detailed instructions to install MySQL on any Linux distribution. See "Installing MySQL on Linux" for details and instructions.
  2. Altneratively, you can probably install a working MySQL server that is compatible with this project by running:

apt-get update && apt-get install mysql-server

  1. You may be prompted to choose a root password for MySQL during the installation.
  2. You should create a MySQL user for this project, create a database for this project, and may need to give the mysql user permissions to access the database. Instructions to configure the project are provided below.

Unix / Linux / Mac Setup

NOTE: PHP 5.6, the PHP mcrypt extension, and MySQL are required for this project:

  • apt-get update

  • apt-get install php5.6 php5.6-mcrypt

  • git clone https://github.com/prabhakar267/library-management-system

  • cd library-management-system

  • [sudo] chmod -R 755 app/storage

  • composer install

  • Edit mysql.config.php.sample according to your MySQL configurations and save it in the same directory as mysql.config.php

  • php artisan migrate

  • php artisan serve

Windows Setup

Some notes on Windows setup:

MySQL setup

  • Open this link to Download MySQL Workbench.

  • Scroll to the bottom and select Microsoft Windows in the Select your Operating System dropdown.

  • Click download button in front of Windows (x86, 64-bit), MSI Installer at the bottom.

  • Right-click the downloaded MSI file and select the Install item from the pop-up menu, or double-click the file.

  • In the Setup Type window you may choose a Complete or Custom installation. To use all features of MySQL Workbench choose the Complete option.

  • Unless you choose otherwise, MySQL Workbench is installed in C:\%PROGRAMFILES%\MySQL\MySQL Workbench 8.0 edition_type\, where %PROGRAMFILES% is the default directory for programs for your locale. The %PROGRAMFILES% directory is defined as C:\Program Files\ on most systems.

PHP Setup

Obtaining the mcrypt extension for PHP 7+ is not trivial and involves compiling your own PHP build. If your PHP version does not support mcrypt (i.e. if you have PHP 7+), then the easiest way to run Laravel 4.2 applications is to download a compatible version of XAMPP and make sure the app is run with it.

With the above notes in mind, Windows setup is not too tricky:

  • Open git shell;

  • cd C:/path/to/xampp/htdocs;

  • git clone https://github.com/prabhakar267/library-management-system;

  • cd library-management-system;

  • composer update;

  • NOTE: If your PHP version is not compatible with mcrypt you will receive an error here. Do not worry, simply perform these additional two steps:

  • C:/path/to/xampp5.6.33/php/php.exe artisan clear-compiled

  • C:/path/to/xampp5.6.33/php/php.exe artisan cache:clear

  • Create a table for the app via phpmyadmin (or however you prefer);

  • Edit app/config/mysql.config.php.sample according to your MySQL configurations and save it in the same directory as mysql.config.php;

  • php artisan migrate

OR IF YOUR PHP IS NOT mcrypt COMPATIBLE:

C:/path/to/xampp5.6.33/php/php.exe artisan migrate

  • php artisan serve

OR IF YOUR PHP IS NOT mcrypt COMPATIBLE:

C:/path/to/xampp5.6.33/php/php.exe artisan serve

Features

  • Librarians can be given their authorized login ID and password without which the system can not be accessed.
  • Students can only access limited features, i.e., public access level features which include searching a book and student registration form.
  • After logging in librarians can search for a specific book, book issue or student from the home panel.
  • Librarians need to make an entry for new books. To automate the process they simply need to enter the number of issues, then the Issue ID for each book issue is generated automatically.
  • Another responsibility of a librarian is to approve students in situations where approval is needed, i.e. where documents are to be verified or some manual work. Librarians have a panel to simply approve / reject students and to view all approved students. The librarian ID is stored alongside each approved/rejected student to keep track.
  • The most important function of any library is to issue and return books. This system includes a panel to view all outstanding logs and a super simple panel to issue and return books for all librarians.

Comments
  • encryption mismatch

    encryption mismatch

    I got a problem with encryption method

    It says "Function mcrypt_get_iv_size() is deprecated "

    how to solve this issue probl

    Can i use this in laravel 5.4

    opened by CharlesKumar 9
  • Make the year in copyright dynamic

    Make the year in copyright dynamic

    Currently it shows 2015, it should be dynamic File to be changed : https://github.com/prabhakar267/library-management-system/blob/master/app/views/layout/template_footer.blade.php

    help wanted hacktoberfest 
    opened by prabhakar267 6
  • Migrations, Windows setup instructions, README updates

    Migrations, Windows setup instructions, README updates

    Hi there, I found your project on "Up for grabs" and thought it was a cool concept.

    I have worked with Laravel a lot but never a version as old as 4.2, so I thought it'd be a cool challenge whilst ticking off some of your issues along the way.

    To start, I did a lot of experimentation to get this working on Windows and I have now added appropriate instructions on the README to get this up and running on a Windows system. Long story short, Laravel 4.2 is not compatible with PHP v7+ due to an extension called mcrypt (that Laravel 4.2 requires) being totally removed from PHP 7. I did manage to find an easy enough workaround which is outlined in the README.

    Secondly, I used your SQL dump file as a reference and converted all of the raw SQL into Laravel artisan migrations. This just makes sense, as since this is a Laravel project there is no reason for there to be a manual SQL dump to import - we can simply take advantage of the Eloquent system and set up all the tables that way.

    Whilst converting the dump to migrations, I also noticed that there were several redundant timestamp fields - specifically ones that referenced things like when a resource was created. I have removed these redundant fields and updated all of their instances in blade templates and controllers with Laravel's default updated_at and/or created_at timestamp fields. It makes sense to use these over our own timestamp fields as Laravel will automatically update the updated_at fields whenever a change is made.

    There were also some issues with running artisan commands when app/storage folders were not created. So I've removed app/storage from the .gitignore, created all necessary folders within app/storage and individually added .gitignores to those folders so that the folders are part of the initial clone, but everything within them that is generated during development is ignored still. Hopefully that makes sense.

    Anyway, I know this is a long message for a PR, but I just thought I'd outline everything in as much detail as possible. A very interesting project, was fun to work on and experiment with 😄

    Let me know if you had any questions at all, or if you wanted me to fix anything.

    EDIT: Forgot to add that this PR also fixes Issue #31

    opened by Ollie1700 3
  • Change table name in `all-books` route

    Change table name in `all-books` route

    "All Books in Library" tab shows incorrect table name It should be more user understandable like "Books available in Library to be accessed by Students"

    help wanted hacktoberfest 
    opened by prabhakar267 3
  • Change table name in `registered-students` route

    Change table name in `registered-students` route

    "All Students Registered" tab shows incorrect table name It should be more user understandable like "All students approved to access Library facilities"

    help wanted hacktoberfest 
    opened by prabhakar267 3
  • PHP Fatal error:  Uncaught Error: Class 'Patchwork\Utf8\Bootup

    PHP Fatal error: Uncaught Error: Class 'Patchwork\Utf8\Bootup

    i get this error message on composer install

    PHP Fatal error: Uncaught Error: Class 'Patchwork\Utf8\Bootup' not found in /opt/bitnami/apache/htdocs/bootstrap/autoload.php:46 Stack trace: #0 /opt/bitnami/apache/htdocs/artisan(16): require() #1 {main} thrown in /opt/bitnami/apache/htdocs/bootstrap/autoload.php on line 46 Script php artisan clear-compiled handling the post-install-cmd event returned with error code 255

    opened by basamoahjnr 2
  • Bump laravel/framework from 4.2.22 to 6.20.12

    Bump laravel/framework from 4.2.22 to 6.20.12

    Bumps laravel/framework from 4.2.22 to 6.20.12.

    Release notes

    Sourced from laravel/framework's releases.

    v6.20.12

    v6.20.12 (2021-01-13)

    v6.20.11

    v6.20.11 (2021-01-13)

    Fixed

    • Limit expected bindings (#35865)

    v6.20.10

    v6.20.10 (2021-01-12)

    Added

    • Added new line to DetectsLostConnections (#35790)

    Fixed

    • Fixed error from missing null check on PHP 8 in Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() (#35797)

    v6.20.9

    v6.20.9 (2021-01-05)

    Added

    v6.20.8

    v6.20.8 (2020-12-22)

    Fixed

    • Fixed Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() for PHP8 (#35646)
    • Catch DecryptException with invalid X-XSRF-TOKEN in Illuminate\Foundation\Http\Middleware\VerifyCsrfToken (#35671)

    v6.20.7

    v6.20.7 (2020-12-08)

    Fixed

    • Backport for fix issue with polymorphic morphMaps with literal 0 (#35487)
    • Fixed mime validation for jpeg files (#35518)

    v6.20.6

    v6.20.6 (2020-12-01)

    Fixed

    • Backport Redis context option (#35370)
    • Fixed validating image/jpeg images after Symfony/Mime update (#35419)

    ... (truncated)

    Changelog

    Sourced from laravel/framework's changelog.

    v6.20.12 (2021-01-13)

    v6.20.11 (2021-01-13)

    Fixed

    • Limit expected bindings (#35865)

    v6.20.10 (2021-01-12)

    Added

    • Added new line to DetectsLostConnections (#35790)

    Fixed

    • Fixed error from missing null check on PHP 8 in Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() (#35797)

    v6.20.9 (2021-01-05)

    Added

    v6.20.8 (2020-12-22)

    Fixed

    • Fixed Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() for PHP8 (#35646)
    • Catch DecryptException with invalid X-XSRF-TOKEN in Illuminate\Foundation\Http\Middleware\VerifyCsrfToken (#35671)

    v6.20.7 (2020-12-08)

    Fixed

    • Backport for fix issue with polymorphic morphMaps with literal 0 (#35487)
    • Fixed mime validation for jpeg files (#35518)

    v6.20.6 (2020-12-01)

    Fixed

    • Backport Redis context option (#35370)
    • Fixed validating image/jpeg images after Symfony/Mime update (#35419)

    v6.20.5 (2020-11-24)

    Fixed

    • Fixing BroadcastException message in PusherBroadcaster@broadcast (#35290)
    • Fixed generic DetectsLostConnection string (#35323)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Change homepage form items' tag from

    Change homepage form items' tag from "a" to "button"

    Hi @prabhakar267

    I'd like to raise a possible semantic change I proposed in #23

    Here is the current code :

    <div class="btn-box-row row-fluid">
        <a class="btn-box big span4 homepage-form-box" id="findbookbox">
            <i class="icon-list"></i>
            <b>Find Book</b>
         </a>
    
        <a class="btn-box big span4 homepage-form-box" id="findissuebox">
            <i class="icon-book"></i>
            <b>Find Book Issue</b>
        </a>
    
        <a class="btn-box big span4 homepage-form-box" id="findstudentbox">
            <i class="icon-user"></i>
            <b>Find Student</b>
        </a>
    </div>
    

    Does it make sense to keep these nodes as links (a) ? As they are not actually linking to any place and have an action tied to them, I feel it makes sense to change them to button

    help wanted hacktoberfest 
    opened by mbad0la 1
  • Change Student name search to Student ID search

    Change Student name search to Student ID search

    Currently "Find Student" homepage box can search student from their IDs but the UI let's the user think, it is searching on name UI needs to be updated to Enter Student ID.

    help wanted hacktoberfest 
    opened by prabhakar267 1
  • Change

    Change "homepage form boxes" cursor pointer

    On the homepage, there are currently 3 form boxes (Find Book, Find Book Issue, Find Student) Make the cursor on them as pointer:

        cursor: pointer;
    
    help wanted hacktoberfest 
    opened by prabhakar267 1
  • Bump league/flysystem from 1.1.3 to 1.1.4

    Bump league/flysystem from 1.1.3 to 1.1.4

    Bumps league/flysystem from 1.1.3 to 1.1.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Am getting an issue in running migrations;

    Am getting an issue in running migrations;

    The error am getting reads-> PHP Fatal error: Uncaught Error: Class 'Illuminate\Support\ClassLoader' I tried fixing it by including the class but the error wasn't still resolved.

    opened by Emmanuel-Odero 0
  • Error during installation

    Error during installation

    OS: Ubuntu 18.04

    While running 'composer install' I am getting these errors:

      - Installing classpreloader/classpreloader (1.0.2): Downloading (100%)         
      - Installing laravel/framework (v4.2.22): Downloading (100%)         
    symfony/translation suggests installing symfony/config
    symfony/translation suggests installing symfony/yaml
    paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
    symfony/security-core suggests installing symfony/expression-language (For using the expression voter)
    symfony/security-core suggests installing symfony/validator (For using the user password constraint)
    symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
    symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
    symfony/routing suggests installing symfony/expression-language (For using expression matching)
    symfony/routing suggests installing symfony/yaml (For using the YAML loader)
    symfony/event-dispatcher suggests installing symfony/dependency-injection
    symfony/http-kernel suggests installing symfony/class-loader
    symfony/http-kernel suggests installing symfony/config
    symfony/http-kernel suggests installing symfony/dependency-injection
    symfony/http-kernel suggests installing symfony/var-dumper
    predis/predis suggests installing ext-phpiredis (Allows faster serialization and deserialization of the Redis protocol)
    phpseclib/phpseclib suggests installing ext-mcrypt (Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.)
    phpseclib/phpseclib suggests installing pear-pear/PHP_Compat (Install PHP_Compat to get phpseclib working on PHP < 4.3.3.)
    patchwork/utf8 suggests installing ext-wfio (Use WFIO for UTF-8 filesystem access on Windows)
    monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
    monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
    monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
    monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
    monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
    monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
    monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
    monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
    monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
    monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
    monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
    laravel/framework suggests installing doctrine/dbal (Allow renaming columns and dropping SQLite columns.)
    Generating autoload files
    > php artisan clear-compiled
    Mcrypt PHP extension required.
    Script php artisan clear-compiled handling the post-install-cmd event returned with error code 1
    

    I already installed php5.6 and php5.6-mcrypt

    Please help

    opened by JayRhithu 1
  • PHP WARNING during set up

    PHP WARNING during set up

    I got this after following the readme.md after running C:/xampp2/php/php.exe artisan clear-compiled for a windows setup with the xampp version recommended by you:

    PHP Fatal error: require(): Failed opening required 'C:\xampp2\htdocs\library-management-system\bootstrap/../vendor/autoload.php' (include_path='C:\xampp2\php\PEAR') in C:\xampp2\htdocs\library-management-system\bootstrap\autoload.php on line 17

    can you help me with this?

    opened by alaherma 1
Owner
Prabhakar Gupta
Applied Scientist @amzn
Prabhakar Gupta
This is a visitor management system, developed by the use of Laravel 8 combined with Jetstream, Livewire and Tailwind CSS.

This is a visitor management system, developed by the use of Laravel 8 combined with Jetstream, Livewire and Tailwind CSS.

Marios Tsouras 0 Apr 23, 2022
Demo of automated testing use cases for the 2022 nationals

Tests automatisés aux finales nationales 2022 Test d'API (Module C2) Pour le module C2, les spécifications de l'API seront fournies dans la spécificat

Worldskills France - Web Technologies 1 Oct 15, 2021
A functional Prison Management Portal completely developed on php

A functional Prison Management Portal completely developed on php, Inspired by existing models. With interactive modules, and high scalability because of MySQL.

Tuhin Chakrabarty 3 Jul 16, 2022
GitScrum is a Project Management Tool, developed to help entrepreneurs, freelancers, managers, and teams Skyrocket their Productivity with the Agile methodology and Gamification.

GitScrum is a Project Management Tool, developed to help entrepreneurs, freelancers, managers, and teams Skyrocket their Productivity with the Agile methodology and Gamification.

GitScrum 2.8k Jan 6, 2023
mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system

mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system. Dashboard features such as: Complete Dashboard, Custom Authentication, Email Verification, custom-login-register-forgot password (without jetstream).

Hasmukh Dharajiya 2 Sep 20, 2022
DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

kuaifan 3k Jan 5, 2023
Online web application developed in PHP using Laravel framework for managing real-time kitchen orders in a restaurant.

Online web application developed in PHP using Laravel framework for managing real-time kitchen orders in a restaurant. It allows, through a web panel, real-time communication between chefs and waiters about the status of orders.

Fernando 2 Nov 9, 2022
Laravel MVC Framework - Toko Distro

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

null 3 Dec 18, 2021
Web Application using MVC PHP Framework (LavaLust)

LavaLust Version 2 This is an early release of LavaLust Version 2. You may check the changelog.txt file to see the changes. Overview of Changes in Ve

Noe Dimailig 1 Oct 16, 2021
A simple blog project based on a custom-created MVC framework using PHP & MySQL

A simple blog project based on a custom-created MVC framework using PHP & MySQL. That follows the Facade design pattern.

Samiul Arafah Dhrubo 2 May 28, 2022
Slim 3 PHP micro framework MVC application boilerplate

Slim 3 PHP micro framework MVC application boilerplate

Jim Frenette 24 Oct 8, 2022
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

Artha Nugraha Jonar 34 Sep 17, 2022
A complete open source hotel management system built with Laravel Framework.

Hotelio : Hotel Management System Hotelio is a open source hotel management system that manages your hotel operations, smoothly, effortless. Hotelio i

Mehedi Jaman 10 Dec 6, 2022
Library management system with Laravel.

Laravel Library Management System Quick Start clone the repo cd Laravel-libraray-management-system composer install cp or copy .env.example .env php a

Tauseed 16 Dec 28, 2022
Library management system

Scriptorium management system Amicus Plato, sed magis amica veritas In the copying process, there was typically a division of labor among the monks wh

Roman Movchan 4 Jan 9, 2022
CRM project that I developed with ReactJS and Laravel 8.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Harun DoÄŸdu 4 Nov 28, 2021
This is Fully Working Net Banking Project Developed in PHP, HTML, JavaScript, CSS

Net Banking Project in PHP In this project i have develop real world net-banking project. This project is a best simulator for banking learners Featur

null 0 Feb 19, 2022
Chat Application developed for Server Side Development

ChatApp ?? Chat Application developed for Server Side Development (@IESClaraDelRey) ?? About this file The purpose of this file is to provide overview

null 4 Jun 21, 2022
Library JGU is a website created for a university library system information. Made with PHP & TailwindCSS.

Library JGU Library JGU is a website created for a university library system information. Made with PHP & TailwindCSS. Key Features • How To Use • Rel

Azkazikna Ageung Laksana 23 Oct 7, 2022