Library Management System (Java)
A robust, console-based Java application designed to automate library workflows, including member registration, book inventory management, and transaction tracking.
🚀 Features
- Automated Persistence: Uses Java Serialization to save and load data from
.dat files, ensuring zero data loss between sessions.
- Dynamic Inventory: Efficiently manage book records with real-time status updates (Available vs. Issued).
- Member Tracking: Links books to specific member IDs to track accountability.
- Smart Validation: Prevents duplicate entries and ensures books can only be issued to registered members.
- Improved UX: Simulated loading states and formatted console output for a professional feel.
🛠️ Technical Stack
- Language: Java 17+
- Data Structures:
HashMap (for $O(1)$ search efficiency), ArrayList.
- I/O Handling:
java.io.Serializable, ObjectInputStream/ObjectOutputStream.
- Concurrency:
Thread.sleep utilized for UI pacing.
📂 Project Structure
- Member Class: Handles member attributes (ID, Name).
- Book Class: Manages book metadata and issuance state.
- LibrarySystem Class: The core engine containing CRUD operations, file persistence logic, and the user interface menu.
📖 How to Run
- Compile the code:
```bash
javac LibrarySystem.java