Java Library Management System π§© Project Overview
The Library Management System is a simple console-based Java application designed to manage books and borrowers using Object-Oriented Programming (OOP) concepts. It enables users to perform operations such as adding books, registering borrowers, borrowing and returning books, and searching for available titles.
This project helps beginners understand OOP principles such as encapsulation, inheritance, composition, and data management through a real-world application.
π― Objective
The main objective is to:
Practice Java OOP design and logic.
Build a modular, reusable, and maintainable application.
Implement real-world logic like book availability and due dates using Javaβs standard libraries.
π οΈ Technical Requirements Component Details Programming Language Java (JDK 8 or higher) Libraries Used Standard Java libraries (java.util, java.time) IDE/Editor IntelliJ IDEA, Eclipse, or VS Code Version Control Git & GitHub Execution Command Prompt / Terminal π§± Folder Structure library-management-java/ βββ src/ β βββ Book.java # Handles book data and availability β βββ Borrower.java # Stores borrower information β βββ Library.java # Core logic: manage books & borrowers β βββ BorrowedBook.java # Helper class for borrow tracking βββ Main.java # Entry point with menu-driven console UI βββ README.md # Documentation βββ .gitignore # Ignores compiled .class files
βοΈ Setup & Run Instructions Step 1: Clone or Download the Repository git clone https://github.com//library-management-java.git cd library-management-java
Step 2: Compile the Java Files
If youβre in the root folder:
javac src/*.java Main.java
Step 3: Run the Program java Main
π§ Features Implemented
β Add, update, and delete books β Register borrowers and manage memberships β Borrow and return books β Check book availability and due dates β Handle overdue tracking using LocalDate β Console-based menu for interaction
π‘ OOP Concepts Used Concept Application Encapsulation Private fields with getters/setters in Book, Borrower, etc. Abstraction Classes hide internal logic behind public methods. Inheritance Optional for future extension (e.g., EBook extends Book). Composition Library contains lists of Book and Borrower objects. π§© Example Menu Output ====== Library Management System ======
- Add Book
- Register Borrower
- Borrow Book
- Return Book
- Search Book
- Exit ====================================== Enter your choice:
π§ͺ Example Commands
Borrowing a book example:
Enter membership ID: M001 Enter book ISBN: B123 Book borrowed successfully! Due date: 2025-11-27
Returning a book example:
Enter membership ID: M001 Enter book ISBN: B123 Book returned successfully!
π§° Future Enhancements
Persistent storage using files or databases (e.g., MySQL).
Fine calculation for overdue books.
GUI interface using JavaFX or Swing.
Export reports (borrow history, available books, etc.).
π¨βπ» Author
Aravind M π Full Stack Developer Trainee π Dharmapuri π» GitHub: @Aravind9712