A modern web application for managing books, categories, tags, loans, and reviews in a library setting.
-
Book Management
- Add, edit, and delete books
- Categorize books with multiple categories and tags
- Upload cover images (via URL)
- Track publication dates and ISBNs
-
Loan System
- Check books in/out
- Track due dates and returns
- View active and overdue loans
- Manage borrower information
-
Review System
- 5-star rating system
- User comments and feedback
- Edit/delete reviews (authorized users only)
-
User Management
- User profiles
- Secure authentication
- Role-based permissions
-
Backend
- PHP 8.1+
- Laravel 12.x
- MySQL 8.0+
-
Frontend
- Tailwind CSS 3.x
- Alpine.js (for interactive elements)
- HTML5, CSS3, JavaScript (ES6)
- Boxicons
-
Other Tools
- Composer (Dependency Management)
- npm (Frontend Assets)
- Git (Version Control)
-
Clone the repository
git clone https://github.com/isidorejad/library-hub.git cd library-management-system -
Install dependencies
composer install npm install
-
Configure environment
- Copy
.env.exampleto.env - Update database credentials in
.env - Generate application key:
php artisan key:generate
- Copy
-
Database setup
php artisan migrate --seed
-
Compile assets
npm run build
-
Start development server
php artisan serve
Key variables to configure in .env:
APP_NAME="Library Hub"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=library-hubdb
DB_USERNAME=root
DB_PASSWORD=
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="no-reply@libraryhub.com"
MAIL_FROM_NAME="${APP_NAME}"After seeding:
- Email: admin@library.com
- Password: password
/dashboard- Admin dashboard/books- Book management/categories- Category management/tags- Tag management/loans- Loan tracking/profile- User profile
The application provides a RESTful API for integration:
| Endpoint | Method | Description |
|---|---|---|
/api/books |
GET | List all books |
/api/books |
POST | Create new book |
/api/books/{id} |
GET | Get specific book |
/api/books/{id} |
PUT | Update book |
/api/books/{id} |
DELETE | Delete book |
/api/loans |
GET | List all loans |
/api/reviews |
POST | Create new review |
Run tests with:
php artisan testTest coverage includes:
- Book CRUD operations
- Loan management
- Review validation
- User authentication
For production deployment:
- Set up a web server (Nginx/Apache)
- Configure database for production
- Update
.envwith production values - Optimize the application:
php artisan config:cache php artisan route:cache php artisan view:cache

Tagging system for organizing books
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Project Maintainer - Jad Isidore
Project Link: https://github.com/isidorejad/library-hub










