← BACK TO PORTFOLIO

LIBRARY MANAGER

Console-based library system in Java.

RoleJava Developer
Timeline2022
Tech StackJava, OOP

OVERVIEW

A comprehensive, console-based Library Management System engineered entirely in Java. This architecture was meticulously designed to demonstrate advanced Object-Oriented Programming (OOP) paradigmsβ€”including Encapsulation, Inheritance, and Polymorphismβ€”independent of a graphical user interface. It serves as a robust backend framework, illustrating how complex entity relationships, borrowing constraints, inventory tracking, and dynamic customer profiles can be modeled effectively using pure programmatic logic and architectural best practices.

Library System Class Diagram
Library Management System Screen 1
Library Management System Screen 2
Library Management System Screen 3
Library Management System Screen 4
Library Management System Screen 5
Library Management System Screen 6
Library Management System Screen 7

KEY FEATURES

  • β–Έ Robust Cataloging: Efficiently structure and manage diverse inventory, including books and periodicals.
  • β–Έ Identity Management: Securely register, authenticate, and manage dynamic customer profiles.
  • β–Έ Query Mechanisms: Implement rapid search protocols for locating specific library assets.
  • β–Έ OOP Architecture: Employ clean software design utilizing Encapsulation, Inheritance, Abstraction, and formalized Class Relationships.

PROJECT STRUCTURE

The codebase is organized cleanly to separate concerns and maintain readability:

library-management-system-java-noGui/
β”‚
β”œβ”€β”€ library/
β”‚   β”œβ”€β”€ Book.java
β”‚   β”œβ”€β”€ Periodical.java
β”‚   β”œβ”€β”€ Customer.java
β”‚   β”œβ”€β”€ Library.java
β”‚   └── Main.java
β”‚
β”œβ”€β”€ Documentation/
β”‚   └── Project_Documentation.docx
β”‚
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
└── .gitignore

HOW TO RUN

This is a standard Java console application with no external dependencies. To run it locally:

1. Compile the source code:

javac library/*.java

2. Execute the main program:

java library.Main

SYSTEM ARCHITECTURE & LOGIC

The system was implemented following a clear three-step methodology to simulate real library operations.

1. Entity Design & Structure
Every real-world entity is abstracted into a dedicated class with strict attributes and methods, guaranteeing a clear separation of concerns.
2. Core Business Logic
Enforces strict systemic rules, such as borrowing limitations and inventory locks on checked-out items until they are returned.
3. Data Interaction
Provides a streamlined console interface utilizing specialized output methods for inventory status, availability, and historical customer data.

OOP CONCEPTS APPLIED

Encapsulation
Protects sensitive data (e.g., internal state and user identifiers) through strictly controlled accessor and mutator methods.
Inheritance
The Periodical class extends the Book baseline to maximize code reuse and eliminate redundancy.
Polymorphism
Leverages overridden methods to provide specialized runtime behavior for various entities while maintaining a unified interface.

MAIN CLASSES

Book.java
Manages inventory state, unique identifiers, author metadata, and checkout status for standard assets.
Periodical.java
A specialized subclass for episodic literature, implementing overridden attributes and methods.
Customer.java
Handles user identity, enforces dynamic borrowing thresholds, and tracks active checkouts.
Library.java
The primary controller coordinating transactional relationships between inventory, customers, and operational logic.
Main.java
The interactive execution entry point for navigating and validating systemic functionality.