Skip to content

Thurnos/Library-Management

Repository files navigation

Library Management System

A comprehensive Java-based library management system designed to streamline book inventory, user management, and lending operations for modern libraries.

Features

  • 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

Technology Stack

  • Backend: Java
  • Frontend: HTML/CSS
  • Architecture: Object-oriented design with clean separation of concerns

Installation

Prerequisites

  • Java 8 or higher
  • A compatible database system (MySQL/PostgreSQL recommended)
  • Git

Setup Instructions

  1. Clone the repository

    git clone https://github.com/Thurnos/Library-Management.git
    cd Library-Management
  2. 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
  3. Build the project

    javac -d bin src/**/*.java
  4. Run the application

    java -cp bin:lib/* main.LibraryManagementApp

Usage

Accessing the Application

  1. Open your web browser and navigate to the application URL
  2. Log in with your credentials or register as a new library member
  3. Use the intuitive interface to:
    • Search for books in the catalog
    • View your lending history
    • Reserve books
    • Manage your profile

Common Tasks

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

Project Structure

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

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure your code follows the existing style and includes appropriate documentation.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support & Contact

For issues, questions, or suggestions, please:

  • Open an issue on the GitHub repository
  • Contact the project maintainer at your email

Acknowledgments

  • 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

Latest update: User profile, registration and member experience

This build includes a cleaner user-facing interface:

  • working registration form for member accounts
  • personalized profile dropdown in the navbar
  • /profile dashboard with current loans, reservations, tickets and loyalty overview
  • /profile/loyalty loyalty profile page
  • /my-library book 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.

Reservation Approval + Query Reports Upgrade

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 paths
  • database/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.

About

Java-based library management system designed to streamline book inventory, user management, and lending operations for modern libraries.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors