A comprehensive Java-based library management system designed to streamline book inventory, user management, and lending operations for modern libraries.
- Book Management: Add, update, delete, and search books in the library catalog
- User Management: Register and manage library members with detailed profiles
- Lending System: Track book checkouts and returns with due date management
- Inventory Control: Monitor book availability and stock levels in real-time
- Search & Filter: Advanced search capabilities by title, author, ISBN, and category
- Reporting: Generate detailed reports on library operations and statistics
- Web Interface: Responsive HTML-based user interface for seamless interaction
- Data Persistence: Reliable database storage for all library information
- Backend: Java
- Frontend: HTML/CSS
- Architecture: Object-oriented design with clean separation of concerns
- Java 8 or higher
- A compatible database system (MySQL/PostgreSQL recommended)
- Git
-
Clone the repository
git clone https://github.com/Thurnos/Library-Management.git cd Library-Management -
Configure the database
- Create a new database for the library system
- Update the database connection settings in the configuration file
- Run the provided SQL scripts to initialize the database schema
-
Build the project
javac -d bin src/**/*.java
-
Run the application
java -cp bin:lib/* main.LibraryManagementApp
- Open your web browser and navigate to the application URL
- Log in with your credentials or register as a new library member
- Use the intuitive interface to:
- Search for books in the catalog
- View your lending history
- Reserve books
- Manage your profile
As a Library Member:
- Search for books by title, author, or ISBN
- Check book availability
- View and manage your borrowed books
- Renew books before the due date
As a Librarian:
- Add new books to the inventory
- Process checkouts and returns
- Manage library member accounts
- Generate reports and view statistics
Library-Management/
├── src/
│ ├── models/ # Core data models
│ ├── controllers/ # Business logic
│ ├── views/ # HTML-based UI components
│ ├── database/ # Database connectivity
│ └── utils/ # Utility classes
├── lib/ # External libraries
├── database/ # SQL scripts and schema
├── README.md # This file
└── LICENSE # License information
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows the existing style and includes appropriate documentation.
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, questions, or suggestions, please:
- Open an issue on the GitHub repository
- Contact the project maintainer at your email
- Built with Java for robust, scalable library management
- Inspired by best practices in library information systems
- Thanks to all contributors who have helped improve this project
Version: 1.0.0
Last Updated: February 2026
Maintainer: Thurnos
This build includes a cleaner user-facing interface:
- working registration form for member accounts
- personalized profile dropdown in the navbar
/profiledashboard with current loans, reservations, tickets and loyalty overview/profile/loyaltyloyalty profile page/my-librarybook browsing and reservation flow- support ticket creation from the member profile
- session cookie settings and remember-me cookie support
- logout cookie cleanup
- completed missing Thymeleaf templates for major web routes
Start with START_HERE.txt and import database/library_management_setup.sql before running the application.
This build adds a real reservation approval workflow. Member reservations now start as PENDING; the book stock is only decreased after a Librarian/Admin approves the request.
New staff pages:
/reservations- approve/reject/cancel reservation requests/library-reports- exposes existing query/report functionality in the UI
New database scripts:
database/add_100_books_and_images.sql- adds 100 generated demo books and cover pathsdatabase/library_analytics_queries.sql- standalone SQL report queries
Book images are local generated SVG placeholders in src/main/resources/static/images/books/, so the app does not depend on external image URLs.