A website where clients can reserve books via downloading a receipt for a book in PDF format before picking them up physically from a real library by providing it to a library staff, made with Laravel and bootstrap.
The website is available from two perspectives: client and librarian.
- Loan books
- Manage wishlisted books
- Access profile
- Search and view book authors and categories
- Export list of loans in PDF or CSV format
- Declare a loan ended by setting the date the book was returned
- Message clients via email (see SMTP configuration)
- Change due dates for loans
- Access list of clients and their loans
- Edit book information
- Remove books
- Add books to the database
- Access statistics dashboard and view visual charts
-
Clone the Repository:
git clone https://github.com/MrElyazid/LibraryManagementSystem.git cd foldername
-
Install Dependencies:
composer install
-
Configure the
.env
File with database credentials:DB_HOST=localhost DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_database_username DB_PASSWORD=your_database_password
-
Import the Database (Optional): Import the database dump file
db_library.sql
using phpMyAdmin or a similar tool to have the same data as in the screenshots.Additionally, download the images folder from here, decompress it, and place it at
storage/app/public
. -
Run Migrations:
php artisan migrate
-
Setup SMTP Server (Optional): To enable email functionality, add the following to the
.env
file:MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=YOUR_EMAIL MAIL_PASSWORD=GOOGLE_APP_PASSWORD MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=YOUR_EMAIL MAIL_FROM_NAME="Ohara Library"
-
Serve the Application: Make sure the database is up and running, then start the server:
php artisan serve
The app should be accessible at
http://localhost:8000
.
The website isnt complete, nor does it follow all the best laravel practices, has many spaghetti codes and bugs and some functionalities are not yet implemneted ( fine calculation for late book returns, setting a max number of loans... etc ) this is an early version of it and (i hope) maybe i can work more on it in the future.