Java Library Management System Console App
Java Library Management System Console App
The system implements a user management system with different levels of access. Admins have full access to all features, while Viewers have restricted access, limited only to viewing lists of books and members. This segmentation ensures that certain actions, like adding or removing books, are restricted to specific user roles .
The library management system ensures data persistence by storing all information in a SQLite database. This includes storing details about books, members, and users, which remains accessible even after the application is closed .
Admin users have exclusive access to functionalities such as adding and removing books and members, updating book details, managing users, and viewing overdue books. In contrast, Viewer users can only list books, find books by title, list members, and view member details .
The application prompts users to log in with their credentials, consisting of a username and password. Once authenticated, the system displays menus based on the user's role—Admins receive a comprehensive menu allowing them full system functionality, while Viewers see a limited menu focused on viewing capabilities .
The system tracks overdue books based on borrowing dates and a 14-day borrowing limit. It provides a list of overdue books visible to Admin users, assisting them in managing returns and notifying members about overdue items .
The system prioritizes borrowing for Premium Members by allowing them to borrow up to 10 books, compared to 3 for Regular Members. Additionally, a mechanism flags books as popular and gives Premium Members borrowing priority for these books .
Having distinct user roles like Admin and Viewer is crucial for maintaining security and operational efficiency. Admins perform crucial updates and management functions, while Viewers can monitor the system activity. This separation keeps sensitive operations secure and reduces the risk of data corruption .
The system categorizes books by tracking attributes such as title, author, ISBN, and availability status. These attributes facilitate efficient management and retrieval of book details within the library system .
The implementation should utilize principles like polymorphism, inheritance, and abstraction. These principles aid in maintaining a well-structured, scalable codebase. For example, separating code into classes based on functionality enhances clarity and reusability .
Regular Members can borrow up to 3 books, while Premium Members can borrow up to 10. This difference reflects their roles, as Premium Members pay for better borrowing privileges, such as prioritization for popular books, while Regular Members have access to basic borrowing functionality .