Skip to content

Advanced Real Estate Financing System in Java applying OOP principles, Custom Exceptions, and Data Persistence.

Notifications You must be signed in to change notification settings

Apollo-stack/Advanced-Property-Financing

Repository files navigation

🏡 Advanced Property Financing System

Final Project for Object-Oriented Programming (OOP) at PUCPR.

This is a comprehensive Java application designed to simulate real estate financing. It expands upon basic OOP concepts by introducing Custom Exceptions, Complex Polymorphism (Houses, Apartments, and Land), and robust Data Persistence.

🚀 Key Differentiators

Unlike standard financing calculators, this system implements specific business rules:

  • Custom Exception Handling: Implements AumentoMaiorDoQueJurosException to prevent financial calculations that would violate specific interest rules (e.g., installments exceeding interest limits).
  • Expanded Model: Support for three property types with unique attributes:
    • Casa: Calculates based on built area and land size.
    • Apartamento: Includes garage spots and floor number logic.
    • Terreno: Specific logic for commercial/residential zones.

🛠️ Technical Architecture

  • Language: Java (JDK 24)
  • Design Pattern: Separation of Concerns (Main, Model, Util packages).
  • Persistence:
    • Serialization: Full object state saving/loading via .dat files.
    • Text Export: Human-readable .txt reports.
  • Input Handling: Robust user interface class preventing invalid data entry (negative numbers, abusive interest rates).

📋 Features

  • Interactive Console Menu: Select property type and input specific details.
  • Smart Validation: Prevents crashes with try-catch blocks for mismatch inputs.
  • Financial Simulation: Calculates total payment and monthly installments with compound logic.
  • History Management: Automatically loads previous simulations upon startup.

📦 How to Run

  1. Clone the repository.
  2. Import the project into IntelliJ IDEA or Eclipse.
  3. Run Main.java located in src/main/.
  4. Follow the on-screen prompts to simulate a financing.

Developed by Matheus Ramon - 2025

About

Advanced Real Estate Financing System in Java applying OOP principles, Custom Exceptions, and Data Persistence.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages