Skip to content

devendraDPI/library-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Library Management System

Overview

  • A lightweight, menu-driven Java console application designed to manage physical books and ebooks. The project demonstrates object-oriented programming, collections, interfaces, inheritance, custom utilities, and multithreading concepts all implemented in a clean, modular structure.
  • This project simulates a library management system with features such as adding books, issuing and returning books, searching, sorting, and background notifications.
  • It supports both physical books and ebooks, while maintaining clean separation of concerns via classes, interfaces, and utility components.
  • The application runs entirely in the console.

Concepts Applied

This project applies core Java concepts, including:

  1. Programming Fundamentals

    • Variables & data types
    • Arithmetic operators (issued vs remaining book count)
    • Conditional statements (if, switch)
    • Loops (for-each loops for displaying collections)
  2. Object-Oriented Programming

    • Classes & Objects
    • Interfaces (Borrowable)
    • Inheritance (Book EBook)
    • Encapsulation (private fields + getters/setters)
    • Method overriding
    • Static members (tracking totals)
  3. Collections & Streams

    • HashMap for fast ID-based lookup
    • Stream filtering for search
    • Stream sorting with comparators
    • Lambdas (forEach, filtering expressions)
  4. Exception Handling

    • Input mismatch handling for integers/doubles
    • Validation for string inputs
  5. Multithreading

    • Background notification thread (NotificationUtils)
    • Conditional notification behavior
    • Demonstrates concurrent execution

Project structure

.
|-- Book.java
|-- Borrowable.java
|-- EBook.java
|-- Library.java
|-- LibraryApp.java
`-- utils
    |-- InputUtils.java
    |-- MenuDecoratorUtils.java
    `-- NotificationUtils.java

1 directory, 8 files

Installation & Setup

  1. Prerequisites

    • Java 25
    • Any IDE or terminal java commands
  2. Clone the repository

   git clone https://github.com/devendraDPI/library-management-system.git
  1. Navigate to the project folder
   cd library-management-system
  1. Run the app
    java LibraryApp.java

Video

  • See how the Library Management System works in this video walkthrough.

YouTube

License

  • MIT License: See License file for details.

About

A console-based Library Management System built in Java, featuring book and eBook management, search and sorting, issuance tracking, and multithreaded notifications. Implements OOP principles, collections, utilities, and input validation for a clean, modular design.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages