Skip to content

AnjaAsceric/java-library-management-system

Repository files navigation

Library Management System

This project is a console-based library management application developed in Java using object-oriented programming principles.

The system simulates basic library operations, including customer registration, book management, membership management, and family membership authorization.

Different membership types are implemented using inheritance and polymorphism, allowing each membership to define its own borrowing limits and fees.


System Overview

The application allows libraries to:

  • register customers
  • manage book availability
  • create and manage memberships
  • authorize family members under family memberships
  • track borrowing privileges based on membership type

The project demonstrates how object-oriented programming concepts can be applied to model real-world library operations.


Sample Output

Program Output

Tools and Technologies

  • Java
  • Object-Oriented Programming (OOP)
  • ArrayLists and Collections Framework
  • Console-based application development

Features

  • Customer registration and management
  • Book registration and availability tracking
  • Book borrowing and returning
  • Standard, Premium, and Family memberships
  • Family member authorization verification
  • Membership-specific borrowing limits
  • Membership-specific fees

Project Structure

  • Customer.java – customer information and management
  • Book.java – book information and availability tracking
  • Membership.java – abstract parent class for memberships
  • StandardMembership.java – standard membership implementation
  • PremiumMembership.java – premium membership implementation
  • FamilyMembership.java – family membership implementation with authorized family member tracking
  • Library.java – manages books, customers, and memberships
  • Main.java – demonstrates system functionality

OOP Concepts Demonstrated

Encapsulation

  • Private attributes with getters and setters
  • Controlled access to object data

Inheritance

  • Membership types inherit from the abstract Membership class

Polymorphism

  • Different membership types implement their own borrowing limits and membership fees
  • Membership objects are managed through a common parent type

Constructor Overloading

  • Multiple constructors support different object initialization scenarios

Collections

  • ArrayLists are used to manage books, customers, memberships, and family members

Membership Types

Standard Membership

  • Borrow limit: 5 books
  • Membership fee: $20

Premium Membership

  • Borrow limit: 15 books
  • Membership fee: $50

Family Membership

  • Borrow limit: 25 books
  • Membership fee: $80
  • Supports multiple authorized family members
  • Includes family member authorization verification

Skills Demonstrated

  • Object-oriented programming
  • Java application development
  • Class and method design
  • Encapsulation, inheritance, and polymorphism
  • Collection management using ArrayLists
  • Business rule implementation
  • Application architecture and system design

About

Java object-oriented programming project implementing a library management system demonstrating core OOP concepts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages