A robust, console-based Java application designed to automate library workflows, including member registration, book inventory management, and transaction tracking.
- Automated Persistence: Uses Java Serialization to save and load data from
.datfiles, 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.
- Language: Java 17+
-
Data Structures:
HashMap(for$O(1)$ search efficiency),ArrayList. -
I/O Handling:
java.io.Serializable,ObjectInputStream/ObjectOutputStream. -
Concurrency:
Thread.sleeputilized for UI pacing.
- 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.
- Compile the code:
javac LibrarySystem.java