Library Management System (LMS) - keep your books safe and manageable

# Library Management System (LMS)

## keep your books safe and manageable

- created: 26th Dec 2015
- latest update: 11th March 2017
- by: Xerone IT
- codecanyon.net/user/xeroneitbd
- email: konokronok@gmail.com

Thank you so much for purchasing this application. If you have any question that are beyond the scope of this help file, please feel free to check our support instructions:
http://codecanyon.net/item/library-management-system-lms/14273959/support

### What is LMS?

Library Management system is carefully developed for easy management of any type of library. It's actually a vertual version of a library. It’s a web based system where you can manage books of different categories, manage members of different types and manage issue/return of books easily.

Issuing a book to a member is just matter of a click. There are configuration for day limit to keep a book and also managing fine system.

LMS will be an efficient companion for managing your library.

### Features

Backend - Admin:

1. Dashboard (graphical report of recent activities)
2. General settings (system customization)
3. Member management (member types and members)
4. Book management (books and book categories)
5. Book catalog print (barcode)
6. Circulation management (issue & return books to/from members and circulation settings)
7. Notify members by SMS or Email (several SMS and Email API integration)
8. Requested books by members (accept or reject requests)
9. Daily read books (books are being read day to day)
10. Report (fine report and notification report)

Backend - Member:

- Search books
- View circulation history
- View Status of requested books
- View notifications from admin
- Read e-book online (if available)
- Change password

Frontend:

1. Preview of most read,issued,recent books
2. Advanced book search
3. Contact page
4. Member registration
5. Login

### How does it work?

1. The whole system is divided into three parts: admin panel, member panel and frontend (site).
2. Anyone can view library assets from frontend and can apply to be a member.
3. Admin can approve or reject any member application and also can create a member manually.
4. Applicant become a member if admin appoves the application.
5. Admin and members will be able to perform the actions mentioned above (Features section) after log in to LMS system correspondig to their user levels.

### How to install LMS?

1. Download .zip package
2. Upload it to your server
3. Extract the package
4. Run the uploaded url via browser (http://yourdomain.com/sub1/sub2/.../lms/) and you will find this interface. Here you have to provide the settings for LMS:
   - Hostname : database host name / IP
   - Database Name : create a mysql database for LMS on your host and write that name here
   - Database username : username of the created database (if applicable)
   - Database password : password of the created database
   - LMS Admin Panel Login Email : this email will be used to login as admin
   - LMS Admin Panel Login Password : password to log in as admin
   - Language : select your language
   - Institute Name and Institute Address
   - Institute Phone / Mobile : with country code
5. Click Install LMS Now Button
6. You are done. Log in with your admin email and password and start using LMS.

### What's in Dashboard?

Dashboard is the lading page of admin panel consisting graphical reports of recent activities. The snapshot will make this defination very clear.

### Description of a Typical Interface

You will see similar type of interface everywhere because our design team tried to make the whole interface easy to learn and remember. So if you know what is where in this interface below, you can explore the rest very easliy.

1. It's the main navigation. You will find every link here as links and sub-links.
2. Clicking here an user can change his/her password or can sign out.
3. You will find some pages with data loaded in a nice datagrid. You can filter the shown data by searching keywords.
4. Data are always loaded with pagiation for better performance of the system. You will find the pagination information here and can manipulate pagination options.
5. It's called the the "Action Area". If you want to read / edit / delete / approve / reject etc a record in datagrid you have to use the action area.
6. In this area you will find group functionalilities on records like add / send / download / print / export

### General Settings

- Go to "General Settings"
- Click it and you will find a form to customize LMS.
- This is the place where you can change institute information, logo,favicon, language, time zone, currency, registration terms and conditions also.
- Here is the snapshot.Happy customization

### Multilingual Support

Disclaimer: We are glad to provide our product in 14 different languages. You can select your language while Installation or you can change your language from General Settings. All the translations are performed by google translator. Also there are possibilities of human error. If there are any errors then we can not take the responsibility because firstly, we have no control over or knowledge on google's translation algorithm and secondly, our first language is Bengali & second language is English. So we were unable to correct errors for other languages than Bengali or English. You can correct any error or change any word if you like to (described below).

Built-in Support for 14 Languages

Change Any Built-in Language's Words/Sentences:

If you want to change words/sentences any of our built-in languages, you will find them in three places. Let you want to change Bengali language, then you will find Bengali language files in:

1. lms/application/language/bengali/

example: book_lang.php

$lang["generate catalog"] = "Value 1";
$lang["print catalog"] = "Value 2";

2. lms/plugins/grid/locale/bengali.js

example:

$.fn.pagination.defaults.beforePageText = 'Value 1';
$.fn.pagination.defaults.afterPageText = ' Value 2 {pages}';
$.fn.pagination.defaults.displayMsg = 'Value 3 {total} Value 4 {from} Value 5 {to} Value 6';

3. lms/plugins/grocery_crud/laguages/bengali.php

example:

$lang['list_add'] = 'Value1';
$lang['list_actions'] = 'Value2';
$lang['list_page'] = 'Value3';

The files are php or js files. So, any syntax error during changing will affect the system. Please be careful when you change and backup original files before you change.

### Book Management

- Go to Books link and you will find tw o sublinks : Book Categories and Book s.
- You can add, view, edit, delete, search your book categories (novel, poetry, science, economics, programming etc) by going Book Category sub-link.
- Similarly you can add, view, edit, delete, search your books by going Books sub-link
- While adding book you can specify Number of Copies. Each copy will have system generated Book ID. Select one or more from the Category field when you add a book for easy search & mangement of books. Also upload a PDF/ePub file or web link of PDF/ePub of the book you add , if available. If you upload e-version of a book then members will be able to read that book online. Do not forget to upload Cover Image of the book you add,it is optional though.
- You can generate and print book catalogs with barcode by clicking Generate Catalog.
- Look at the snapshot (add form) below of add book form, with marked areas we are talking about. As regular convention, the * fields mean they are required.
- You can import book from csv file aslo. To import book from csv click the "Import Book - CSV" button in book list, browse your csv file and click "Upload File". To know the csv file formatting please download sample csv file first.
- You can aslo link soft version (pdf/epub) of book in csv. To link soft version of your book, first upload pdf files to lms/upload/book_import/ manually with unique names and then write those names in your csv corrspondingly or just paste the epub link of your books corrspondingly (see snapshot below).

Book List

Book Add

Import Book (CSV)

Sample CSV File

### Member Management

- Go to Member link and you will find two sublinks : Member Type and Member.
- You can add,edit, delete, search your member types(teacher, student, researcher, guest etc) by going Member Type sub-link.
- Similarly you can add, view, disable, enable, edit, reset password, delete, search, download your members by going Member sub-link. Anu one can apply to be a member through frontend but needs admin's approval. Admin can also reject a application.

### Issue and Return Book (Circulation)

Circulation Settings

- Here you can configure every option that will be used in book issue and return.
- You can set issue time limit for a book, book issue limit for a member and per day fine/penalty for delayed rerurn of a book (seperately for every member type).
- Issue time timit = 0 or book issue limit = 0 means no limit at all.
- Click Add button to add new settings.

Issue & Return

- By clicking Issue & Return, first see the interface below, the list of circulation made recently. You can search by any combination of book ID, member name, book title, author, status, date Interval to get desired result.

- Click Issue & Reurn button to start a new circulation. Start type a member name it will suggest you with all names matching your keyword and the select desired member. You can also put member ID directly if you remeber member ID. Then click Search button to view member's current circulation status. It will show you member's current circulation status and you will find Return buttons for already issued books and New Issue button (if issue limit hasn't crossed yet) to issue another book.

- Clicking new issue book will bring you similar popup dialog as below and you can issue a new book by searching book here:

### Notification System

- You can notify members here, who have not returned their books in time .
- There are three types of notification : Only Notification, Email & Notification and SMS & Notification
- All three types of notification will be stored in database and memers will also be able to see notification by logging into their member panels. If you do not want to spend money for notification purose, you can use Only Notification or Email & Notification
- If you want to use email or SMS notification, you have to configure from which server the emails or SMSs will be sent.

SMS Settings

- LMS supports 5 (five) popular SMS gateway APIs currently ad we are extedig API support.

1. Planet IT (http://planetgroupbd.com/)
2. Plivo (https://www.plivo.com)
3. Twilio (https://www.twilio.com/)
4. Clickatell (https://www.clickatell.com)
5. Nexmo (https://www.nexmo.com)

- Chose a SMS gateway, bye SMS from the gateway and configure that to LMS system. Any gateway you select will provide you the necessary information (Auth ID/ Userame, Auth Token / Password, Phone No. / Mask, API ID - if clickatell) to LMS system.

Email SMTP Settings

- You do not have to bye email to notify members. You can use your own hosting server's SMTP mail (if supported) or 3rd party SMTP mail (like Gmail, Yahoo etc). You will need following information to set up a SMTP email. Setting up SMTP email is not mandatory to send emails from LMS. if you do not set up SMTP email, emails will be sent from admin email using php mail functionality. But in that case, emails may be store in members spam folder.

Notify Delayed Members (who have not returned their books in time)

- Find members you want to notify by filtering through search options.
- Select members by checking the check boxes beside member names.
- Click Send SMS/Email Notification button and the interface below will appear. Select notification type, write subject & message and Send notification.

### Daily Read Books

Daily Read Book is a feature to monitor which books are popular and read how many times. The issued books are stored into Daily Read Book automatically, but system can not track the books are being read in library (offline). So get exact statistics you have to Add those books are being read in library day by day.

### Requested Books

Requested Books is a feature added to LMS so that a member can request a book that is not available in library. This feature will help the management team to extend library based on requests by members. A member requests for a book form his/her panel and the request is shown here. Admin can accept or reject ay request. If a member's request is accepted, the member is notified and can see this request status in member panel.

### Report

There are two types of searchable & downloadable report :

Member-wise Fine/Penalty Report : Member-wise fine/penalty calculation report for delayed return of books with search & download options.

Notification Report : Report of all kinds of notification (SMS/Email) sent to members with search & download options.

### Member Panel

Search Books

Circulation History

Request Book

Notification History

### Frontend

Homepage

Advanced Book Search

Contact Us

Member Registration

Login

### How to Update?

Update - v1.0 to v2.0/v 2.1

1. Download v2.0

2. Backup your current application files (v1.0) and export current database as sql (as pre-caution).

3. Delete v1.0 application files and extract v2.0 as replacement

4. Restore application/upload folder from v1.0

Delete current application/upload folder and paste v1.0's application/upload as replacement from backup.

5. Restore application/config/config.php, application/config/database.php & application/config/my_config.php files from v1.0

Delete current application/config/config.php, application/config/database.php & application/config/my_config.php files and paste v1.0's application/config/config.php, application/config/database.php & application/config/my_config.php files as replacement from backup.

6. Go to phpMyAdmin , select your database and run the following SQL:

SQL Download Link

ALTER TABLE `book_info` CHANGE `price` `price` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `book_info` CHANGE `call_no` `call_no` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `book_info` CHANGE `isbn` `isbn` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `book_info` ADD `is_uploaded` ENUM( '0', '1' ) NOT NULL DEFAULT '1' AFTER `pdf`;
CREATE TABLE IF NOT EXISTS `terms_and_condition` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`terms_and_condition` text CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `terms_and_condition` (`id`, `terms_and_condition`) VALUES
(1, '<ul> <li><strong>All copyright, trade marks, design rights,</strong> patents and other intellectual property rights (registered and unregistered) in and on LMS Online Services and LMS Content belong to the LMS and/or third parties (which may include you or other users.)</li> <li>The LMS reserves all of its rights in LMS Content and LMS Online Services. Nothing in the Terms grants you a right or licence to use any trade mark, design right or copyright owned or controlled by the LMS or any other third party except as expressly provided in the Terms.</li> </ul>');
ALTER TABLE `forget_password` CHANGE `email` `email` VARCHAR( 250 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `member` CHANGE `email` `email` VARCHAR( 250 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `sms_email_history` CHANGE `title` `title` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `sms_email_history` CHANGE `message` `message` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `email_config` CHANGE `email_address` `email_address` VARCHAR( 250 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `email_config` CHANGE `smtp_host` `smtp_host` VARCHAR( 250 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;

Update - v2.0 to v2.1

1. Download v2.1

2. Backup your current application files (v2.0) and export current database as sql (as pre-caution).

3. Replace the following files taking from v2.1

lms/system/core/common.php
lms/plugins/grocery_crud/language/english.php
lms/application/language/english/notification_lang.php
lms/application/controller/home.php
lms/application/controller/admin.php
lms/application/controller/admin_config.php
lms/application/view/admin/edit_config.php
lms/application/view/admin/sms_config.php

Update - v2.1 to v2.2

1. Download v2.2

2. Add the folder lms/application/libraries/twilio-php in your v2.1 copying from v2.2

Update - v2.2 to v2.3

1. Download v2.3

2. Backup your current application files (v2.2) and export current database as sql (as pre-caution).

4. Replace the following files taking from v2.3
lms/assets/sample/book_import_sample.csv
lms/application/controllers/home.php
lms/application/controllers/admin.php
lms/application/controllers/member.php
lms/application/views/admin/book_list.php
lms/application/views/admin/generate_id.php
lms/application/views/admin/submenu_id.php
lms/application/views/admin/theme/sidebar.php
lms/application/views/site/header.php
lms/application/language/*
create new folder upload/book_import

Update - v2.3 to v2.4

1. Download v2.4

2. Backup your current application files (v2.3) and export current database as sql (as pre-caution).

4. Update the files mentioned below:
lms/application/controllers/home.php
lms/application/controllers/admin.php
lms/application/languages/arabic/dashboard_lang.php
lms/application/languages/arabic/calendar_lang.php
lms/application/views/admin/book_list.php
lms/application/views/admin/submenu_book.php
lms/application/views/site/*
lms/application/views/includes/js_include_front.php
lms/application/views/includes/js_include_back.php
lms/application/languages/gergion/*
lms/assets/css/rtl.css
lms/assets/sample/book_import_sample.csv
lms/css/rtl.css
lms/plugins/grocery_crud/language/arabic.php
lms/plugins/grocery_crud/language/gergion.php
lms/plugins/grid/locale/gergion.js
create new folder upload/book_import if not exist

5. Go to phpMyAdmin , select your database and run the following SQL:

SQL Download Link

Update - v2.4 to v2.5

1. Download v2.5

2. Backup your current application files (v2.4) and export current database as sql (as pre-caution).

3. Replace the following files / folders taking from v2.5

lms/application/controllers/home.php
lms/application/controllers/admin.php
lms/application/views/admin/add_book.php
lms/application/views/member folder

4.Open application/config/my_config.php and edit product_versio to v2.5

Update - v2.5 to v2.6

1. Download v2.6

2. Backup your current application files (v2.5) and export current database as sql (as pre-caution).

3. Replace the following files / folders taking from v2.6

lms/application/config/grocery_crud.php
lms/application/controllers folder
lms/application/views/admin folder
lms/application/views/includes/js_include_back.php
lms/application/views/member folder
lms/application/views/site/header.php
lms/application/views/site/recent_book.php

4. Run the migration file via browser. Example link http://yourdomain.com/sub1/sub2/.../lms/update/v2_5to_v2_6

5.Open application/config/my_config.php and edit product_version to v2.6

Update - v2.6 to v2.6.1

1. Download v2.6.1

2. Backup your current lms/upload folder (as pre-caution).

3. Copy (replace if exists) the following files / folders taking from v2.6.1

lms/application/views/member/read_online.php
lms/upload/build
lms/upload/e_books/*

5.Open application/config/my_config.php and edit product_version to v2.6.1

Update - v2.6.1 to v2.6.2

1. Download v2.6.2

2. Replace the following files taking from v2.6.2
lms/application/controllers/admin.php
lms/application/views/admin/add_circulation_result.php
lms/documentation

3.Open application/config/my_config.php and edit product_version to v2.6.2

### Demo

Backend Link: http://lms.xeroneit.net/home/login
Frontend Link: http://lms.xeroneit.net/
Login as Admin
Username: admin@gmail.com
Password: admin
Login as Member:
Username: member@gmail.com
Password: member

### Support

Thank you so much for purchasing this application.If you have any question that are beyond the scope of this help file, please feel free to check our support instructions:
http://codecanyon.net/item/library-management-system-lms/14273959/support

### Source & Credits

Thanks so much to

- CodeIgniter
- GroceryCrud
- jQuery
- jQueryUI
- jQuery EasyUI
- ckEditor
- Morris JS
- Admin LTE
- Bootstrap
- FontAwesome
- Documenter

©Xerone IT , made with Documenter v2.0