Backend Java

Real Estate Property Tool

A Java application for evaluating, comparing, and managing property data using object-oriented design and custom data structures.

About the Project

The Real Estate Property Tool is a Java-based command-line application designed to evaluate and compare residential and commercial properties. Users can load property data, filter by criteria like price range or location, and receive ranked comparisons based on value metrics.

The project was built as a deep dive into object-oriented programming principles. Every component, from the property model hierarchy to the search and sort engine, was designed with OOP patterns in mind: inheritance, encapsulation, polymorphism, and interface-driven design.

Custom data structures (linked lists, priority queues) were implemented from scratch for the core data management layer rather than relying entirely on Java's built-in collections. JUnit tests cover all critical logic paths to ensure accuracy and prevent regressions.

Key Features

OOP Architecture

Property types (residential, commercial, land) modeled through an inheritance hierarchy with shared interfaces for comparison and filtering.

Custom Data Structures

Linked lists and priority queues built from scratch to manage property collections and power the ranking engine.

JUnit Test Suite

Comprehensive unit tests covering property evaluation, data parsing, sorting logic, and edge cases to guarantee correctness.

File I/O

Load and save property datasets from flat files, with a parsing layer that validates and maps raw data into typed property objects.

View on GitHub All Projects