← Back to Projects Web and Software

Portfolio Analyzer

A modular Java portfolio management system built with MVC and MVVM, supporting flexible portfolios, automated investment plans, portfolio rebalancing, performance visualization and multi-layered testing.

Quick Insights:

Introduction

Portfolio Analyzer was built as a multi-iteration project focused on applying SOLID principles and evolving a basic console application into a robust GUI driven financial tool. MVC formed the foundation, later extended with MVVM-style separation for Swing views to reduce UI-logic coupling.

To keep the code extensible, I introduced factories for portfolio types, helper models for validation and caching, command pattern for user operations and modular interfaces for adding new features incrementally. Market data retrieval used the AlphaVantage API with caching and date validation.

Testing was a major focus: mock models, mock views and mock controllers enabled isolated testing of all layers. Contract tests ensured feature additions never broke earlier assignments.

Key Outcomes and Learnings

The project emphasized extensibility, testability and design-driven development. It combined architectural patterns with API integration, caching, visualization and portfolio analytics.