- This code is a pseudo example of how a real-life Library system works and has two major options: entering as a librarian or as a member.
- Assumptions:
- If a book is borrowed, the librarian cannot remove it.
- Before removing a member, they must return all books and pay fines.
- Members are identified uniquely by their phone number.
- The code utilizes major Java concepts taught in class.
- Register new members.
- Remove members (conditions apply).
- Add books to the library.
- Remove books from the library.
- View all members with borrowed books and fines.
- View all books in the library.
- Return to main menu.
- List available books.
- List owned books.
- Issue books (conditions apply).
- Return books (conditions apply).
- Pay fines.
- Return to main menu.
- Upon running the code, it prompts for librarian or member input, or to exit.
- Librarian Interface:
- Options to manage members, books, and view details.
- Member Interface:
- Options to view and borrow books, manage fines, etc.
- Error handling for incorrect inputs and various scenarios.
- Used BufferedReader for input handling.
- Handled exceptions with IOException.
- Used ArrayList for dynamic data management.
- Utilized LocalDateTime for time calculations (fines, due dates).
- Error handling for input validation and logic flow.
- Detailed comments and documentation in the code.