-
Displays the project title, university branding, and a clean menu interface.
-
The main interface allows users to choose between book listing, management, borrowing, returning, and ranking features.
-
Lists all books currently in the library system, including their titles, authors, availability status, and internal IDs for reference.
-
Filters and displays only those books that are currently available, making it easy for users to find borrowable titles.
π QUB Library Management System
A Java console-based library management system for Queen's University Belfast.
π Project Overview
This project is a Java application designed to manage library books, enabling users to:
β
View available books
β
Borrow and return books
β
Add and remove books
β
List books by status
β
Rank books based on popularity
The project consists of two parts:
- Part 1: Core functionality with a standard text-based console menu.
- Part 2: A more interactive console version using
CSC1029Console.jar.
π’ Project Structure
Assessment2/
βββ bin/ # Contains compiled .class files and JAR file
β βββ csc1029_a2.jar # JAR file for the project
βββ part01/ # Core functionality
βββ part02/ # Enhanced console-based version
βββ Images/ # Book cover images (max 10)
βββ README.md # This file
π Getting Started
π§ Prerequisites
- Java 17 or higher
- Eclipse IDE (recommended)
csc1029_a2.jaradded to the build path (for Part 2)- The compiled
.jarfile is located in thebin/directory.
π Installation
- Clone the repository:
bash git clone https://github.com/yourusername/Assessment2.git cd Assessment2 - Open the project in Eclipse.
- For Part 2, add
csc1029_a2.jarto the build path:
- Right-click project β Build Path β Configure Build Path β Add External JARs β Select
csc1029_a2.jar
- Right-click project β Build Path β Configure Build Path β Add External JARs β Select
- Run the application by executing
QUBLibrary.java(Part 1) orQUBLibraryUpdated.java(Part 2).
β οΈ Notes
- Ensure you have Java installed (
java -versionto check). - If you encounter any issues, try rebuilding the project or running from the
src/folder.
π Features & Functionality
π― Core Features (Part 1)
- List all books in the library
- Filter books by availability (Available, On Loan, Withdrawn)
- Add a new book (validating input constraints)
- Remove a book (if not on loan)
- Borrow and return books
- Display the most popular books
π¨ Enhanced Features (Part 2)
- Uses
Consoleclass for improved UI - Colorful and structured output
- Displays book cover images
π Implementation Details
π Key Classes
Bookβ Represents a book with attributes like title, author, ISBN, edition, and price.LibraryBookβ ExtendsBook, adding borrowing functionality and tracking status.Libraryβ Manages a collection of books, handling borrow/return operations.Lendableβ Interface for lending functionality.QUBLibraryβ Console-based interface for interacting with the system.QUBLibraryUpdatedβ Enhanced version usingConsole.
π Design Constraints
- Uses an ArrayList for book storage
- Implements sorting & searching algorithms manually
- No external databases or file storage
π License
This project was developed as part of the CSC1029 module at Queenβs University Belfast.
π€ Contributors
- Noel Varghese Koshy (GitHub Profile)
Log in or sign up for Devpost to join the conversation.