A secure, privacy-first financial portfolio management application that runs locally on your machine. Track your investments across multiple account types with military-grade encryption and complete data privacy.
# Clone or download the application
git clone <repository-url> networth-tracker
cd networth-tracker
# Set up and start (automated)
./scripts/start.sh # macOS/Linux
scripts\start.bat # Windows
# Or manually
python3 -m venv venv
source venv/bin/activate # macOS/Linux: venv\Scripts\activate on Windows
./venv/bin/pip install -r requirements.txt
./venv/bin/python scripts/start.pyOpen your browser to http://127.0.0.1:5000
- Local-only storage - Your data never leaves your computer
- Military-grade encryption - AES-256 encryption for all financial data
- No cloud dependencies - Works completely offline
- Zero data collection - No analytics, tracking, or telemetry
- Multiple Account Types: CDs, Savings, 401k, Trading, I-bonds, HSA
- Real-time Stock Prices - Automatic updates for trading accounts via yfinance
- Historical Performance - Track your portfolio growth over time with automated snapshots
- Multi-broker Support - Manage accounts across different institutions
- Stock Watchlist - Monitor stocks without owning them
- Demo Database - Import realistic synthetic data to explore features
- Export/Import - Encrypted backups for data portability
- Cross-platform - Windows, macOS, and Linux support
- Browser-based - Clean, responsive web interface
- Comprehensive Error Handling - User-friendly error messages and recovery
- Flexible Configuration - Environment-specific settings (development, production, testing)
The main dashboard provides a comprehensive overview of your portfolio with real-time account summaries, asset allocation charts, and quick stats. The clean, responsive interface makes it easy to track your financial progress across all account types.
- Installation Guide - Step-by-step setup for all platforms
- Quick Start Guide - Get running in 5 minutes
- User Guide - Complete feature documentation
- Demo Database Guide - Explore features with synthetic data
- Configuration Reference - Detailed configuration options
- Deployment Guide - Production deployment and setup
- Security Guide - Security best practices
- FAQ - Frequently asked questions
- Troubleshooting Guide - Common issues and solutions
- Scripts Documentation - Startup and utility scripts
networth-tracker/
βββ app.py # Main Flask application entry point
βββ config.py # Configuration management (environments, settings)
βββ requirements.txt # Python dependencies
βββ scripts/ # Startup and utility scripts
β βββ start.py # Main startup script with environment detection
β βββ start.sh # Unix/Linux/macOS launcher
β βββ start.bat # Windows launcher
β βββ init_db.py # Database initialization
β βββ generate_demo_database.py # Demo data generation
βββ models/ # Data models and account types
β βββ accounts.py # Account models, enums, factory patterns
βββ services/ # Business logic services
β βββ auth.py # Authentication and session management
β βββ database.py # Encrypted SQLite operations
β βββ encryption.py # AES-256 encryption service
β βββ historical.py # Historical data tracking
β βββ stock_prices.py # Real-time stock price fetching
β βββ export_import.py # Data backup/restore
β βββ error_handler.py # Centralized error handling
β βββ logging_config.py # Logging configuration
β βββ watchlist.py # Stock watchlist management
βββ templates/ # Jinja2 HTML templates
βββ static/ # CSS, JavaScript, and assets
βββ docs/ # Comprehensive documentation
βββ tests/ # Test suites with integration tests
βββ logs/ # Application logs (secure permissions)
βββ backups/ # Encrypted data backups
βββ data/ # Database files location
- Python: 3.8 or higher
- RAM: 512 MB available memory
- Storage: 100 MB free disk space
- OS: Windows 10+, macOS 10.14+, Linux (Ubuntu 18.04+)
- Network: Internet connection for stock price updates (optional)
- Python: 3.9 or higher
- RAM: 1 GB available memory
- Storage: 500 MB free disk space (for data and backups)
- Browser: Modern web browser (Chrome, Firefox, Safari, Edge)
- AES-256 Encryption: All financial data encrypted at rest
- PBKDF2 Key Derivation: 100,000 iterations with random salt
- Master Password: Single password protects all your data
- Secure File Permissions: Database files protected at OS level
- No Cloud Storage: All data remains on your local machine
- No External Transmission: Only stock symbols sent to APIs (no financial data)
- No Analytics: Zero telemetry or usage tracking
- Open Architecture: Code can be audited for security
- Localhost Only: Application binds to 127.0.0.1 only
- No Remote Access: Cannot be accessed from other machines
- Minimal API Usage: Only stock price lookups via yfinance (symbols only)
- Rate Limited: Stock API calls are rate-limited to prevent abuse
| Account Type | Features |
|---|---|
| Certificate of Deposit (CD) | Principal, interest rate, maturity tracking |
| Savings Accounts | Balance tracking, interest monitoring |
| 401k Retirement | Balance, employer match, contribution limits |
| Trading Accounts | Stock positions, real-time prices, multi-broker support |
| I-bonds | Purchase amount, inflation adjustments, maturity tracking |
| HSA (Health Savings Account) | Contribution limits, employer contributions, investment tracking |
- Backend: Python 3.8+ with Flask web framework
- Database: SQLite with AES-256 encryption
- Frontend: HTML templates (Jinja2), CSS, JavaScript
- Security: cryptography library for encryption, PBKDF2 key derivation
- Stock Data: yfinance library for real-time stock prices
- Service Layer Pattern: Business logic separated into service modules
- Factory Pattern: Extensible account creation through AccountFactory
- Repository Pattern: Database operations abstracted through DatabaseService
- Comprehensive Error Handling: Centralized error management with user-friendly messages
- Development: Debug mode, verbose logging, development database
- Production: Optimized performance, secure file permissions, production logging
- Testing: In-memory database, comprehensive test coverage
- FAQ - Common questions and answers
- Troubleshooting - Issue resolution guide
- Log Files - Check
logs/directory for error details - Demo Database Guide - Test functionality with synthetic data
- Installation Guide - Complete setup instructions
- Configuration Reference - Environment and security settings
- Test Suite - Run
./venv/bin/python -m pytestfor comprehensive testing
This project is designed for personal financial management with a focus on privacy and security.
Contributions are welcome! Please read the documentation for development setup and contribution guidelines.