πŸ“š 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.jar added to the build path (for Part 2)
  • The compiled .jar file is located in the bin/ directory.

πŸ‘… Installation

  1. Clone the repository:
    bash git clone https://github.com/yourusername/Assessment2.git cd Assessment2
  2. Open the project in Eclipse.
  3. For Part 2, add csc1029_a2.jar to the build path:
    • Right-click project β†’ Build Path β†’ Configure Build Path β†’ Add External JARs β†’ Select csc1029_a2.jar
  4. Run the application by executing QUBLibrary.java (Part 1) or QUBLibraryUpdated.java (Part 2).

⚠️ Notes

  • Ensure you have Java installed (java -version to 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 Console class 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 β†’ Extends Book, 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 using Console.

🏠 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

Built With

Share this project:

Updates