π Start Here: MVP Definition | Complete Project Plan | Architecture Decisions
Portfolio Performance App | Forum | Manual
Portfolio Performance (PP) is a powerful open-source desktop portfolio tracker. However, it lacks an enterprise-grade security master for consistent asset classification and analytics. This project provides a dedicated Security-Master Service that:
- Data Sovereignty: Complete Portfolio Performance backup generation and restoration
- Institution Integration: Import transactions from Wells Fargo, Interactive Brokers, AltoIRA
- Advanced Classification: Automated taxonomy assignment via OpenFIGI and pp-portfolio-classifier
- Cross-Validation: Compare institution data with Kubera aggregated holdings
- Database-Centric: PostgreSQL 17 as authoritative source for all financial data
Goal: Transform Portfolio Performance from desktop-only to enterprise-grade with complete data control.
- Complete PP Backup Restoration: Generate/import full Portfolio Performance XML backups
- Institution Transaction Import: Wells Fargo CSV and Interactive Brokers Flex Query parsing
- Basic Security Classification: Manual taxonomy assignment with database storage
- CLI Interface: Command-line tools for all import/export operations
Future Releases (See MVP.md for timeline)
- Automated Classification: OpenFIGI API and pp-portfolio-classifier integration
- Kubera Integration: Cross-institution validation and variance detection
- Web UI: Browser-based classification and account management
- Advanced Analytics: SQL-based reporting and data quality monitoring
Current Status: Foundation phase - Core architecture and database models implemented
- PostgreSQL 17: Running on Unraid server (see Database Setup below)
- Python: 3.11+ with uv installed
- Network: Connectivity to PostgreSQL server (default port 5436)
- Clone Repository:
git clone https://github.com/ByronWilliamsCPA/pp-security-master.git && cd pp-security-master - Install Dependencies:
uv sync - Install qlty CLI:
curl https://qlty.sh | bash(standalone quality runner, not a Python package) - Configure Environment: Copy
.env.exampleto.envand configure database connection - Verify Database:
uv run python tests/test_db_connection.py - Run Tests:
uv run pytest -v --cov=src --cov-report=html - Code Quality:
uv run nox -s lintfor formatting and linting
Note: Database migrations and CLI commands are currently under development
-
Install via Unraid Community Apps:
-
Search for "PostgreSQL" in Community Applications
-
Select PostgreSQL 17 container
-
Configure environment variables:
POSTGRES_DB=pp_master POSTGRES_USER=pp_user POSTGRES_PASSWORD=[secure_password]
-
Map port:
5436:5432(or preferred external port) -
Set persistent storage:
/mnt/user/appdata/pp_postgres/data:/var/lib/postgresql/data
-
-
Verify Installation:
# Test network connectivity nc -zv [unraid-server-ip] 5436 # Test database connection uv run python tests/test_db_connection.py
-
Troubleshooting: See docs/TROUBLESHOOTING.md for common issues
Detailed Setup: See MVP.md for complete MVP scope and PROJECT_PLAN.md for infrastructure details.
pp-security-master/
ββ README.md # This file
ββ CLAUDE.md # Claude Code configuration
ββ LICENSE # MIT License
ββ Makefile # Build automation
ββ pyproject.toml # Dependencies and project configuration
ββ uv.lock # Dependency lock file
ββ noxfile.py # Test automation
ββ codecov.yaml # Coverage configuration
ββ docs/
β ββ adr/ # Architecture Decision Records
β ββ planning/ # Phase-based development plans
β ββ project/ # Project documentation
β ββ MVP.md # Minimum viable product definition
β ββ PROJECT_PLAN.md # Complete roadmap and technical details
β ββ TAXONOMY_GUIDE.md # Classification standards
β ββ ... # Additional project docs
ββ src/security_master/
β ββ storage/
β β ββ models.py # Core database models
β β ββ pp_models.py # Portfolio Performance models
β β ββ transaction_models.py # Institution transaction models
β β ββ views.py # Consolidated export views
β β ββ schema_export.py # Database visualization generators
β ββ extractor/ # Institution-specific parsers
β ββ classifier/ # Classification engines
β ββ patch/
β β ββ pp_xml_export.py # PP XML backup generation
β ββ cli.py # Command-line interface
β ββ utils.py # Shared utilities
ββ tests/ # Test suite
ββ sample_data/ # Portfolio Performance and broker samples
ββ schema_exports/ # Database visualizations (PlantUML, DBML, SQL)
ββ scripts/ # Setup and utility scripts
ββ sql/ # Database migrations and schema
ββ pytest_plugins/ # Custom pytest extensions
- π MVP Definition - Immediate deliverables and success criteria
- π Complete Project Plan - Full roadmap and technical specifications
- ποΈ Architecture Decisions - Technical design rationale
- π Development Planning - Phase-based execution guides
- π·οΈ Taxonomy Guide - Classification standards (GICS, TRBC, CFI)
- ποΈ Database Schema - Visual database diagrams (PlantUML, DBML, SQL)
- π Sample Data - Portfolio Performance and broker examples
This project is open-source and available under the MIT License.