Personal project · 2025

University Library System

Java MVC console app with inheritance hierarchies, polymorphic loan rules, and custom CSV persistence.

Java · OOP · JUnit · File I/O

Challenge

Modelling complex entity relationships and enforcing role-specific business rules with file-based persistence and no database.

Approach

Developed a Java MVC console app using inheritance hierarchies, polymorphic loan rules, and a custom CSV persistence engine.

What it does

Gallery

University Library System screenshot

Class Hierarchy

Base ClassSubclassesKey Responsibilities
Product (Abstract)Book, CD, DVD, AudiobookStores metadata (ISBN, Title), manages loan status
User (Abstract)Student, ChildUser, AdultUserManages personal info, active loans, and permissions
LoanN/ALinks Users to Products, tracks due dates and fines

Testing Verification

Test TypeScopeKey Scenarios Verified
FunctionalEnd-to-End User FlowsLogin, Product Visibility (DVDs hidden for Students), Error Handling
Unit (JUnit)Core Business LogicBorrowing Limits (10/5/3), Guardian Assignment, ID Uniqueness
RegressionBug Fix VerificationLoan state consistency between Controller and User classes