EqTrak is a comprehensive web application designed to help investors track, analyze, and make informed decisions about their equity investments. The platform combines portfolio management, performance tracking, valuation analysis, and forecasting tools in one integrated solution.
- Development Setup - Setting up your development environment
- Architecture - Application architecture and design patterns
- Data Model - Database schema and relationships
- Performance Module - Performance tracking implementation
- Changelog - Recent fixes and improvements
- Track multiple investment portfolios with positions and transactions
- Real-time position monitoring with current values
- Performance metrics with gain/loss calculations at portfolio, position, and transaction levels
- Comprehensive transaction history and analysis
- Custom user-defined metrics for personalized tracking
- Automated market price tracking from reliable sources
- Detailed stock information and fundamental data
- Flexible update control settings
- Manual and automatic data updates with configurable frequency
- Core tracking functionality with extensible modules
- Performance module for gain/loss calculations
- Custom metrics definition and management
- Feature toggles to enable/disable functionality by module or user
- Backend: Django 4.2, Python 3.9+
- Frontend: Bootstrap 5, Vanilla JavaScript
- Database: SQLite (development), PostgreSQL (production)
- Deployment: Docker, Gunicorn
See DEVELOPMENT_SETUP.md for detailed instructions.
# Clone the repository
git clone https://github.com/yourusername/eqtrak.git
cd eqtrak
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Setup database and load initial data
./EqTrak/reset_db_with_testusers.sh
# Start development server
cd EqTrak
python manage.py runserverEqTrak is organized into several key modules:
- Portfolio: Core portfolio, position, and transaction functionality
- Metrics: System for defining, calculating, and displaying metrics
- Market Data: Integration with market data providers
- Performance: Gain/loss calculations and performance tracking
- User Metrics: Custom user-defined metric creation and management
For more details on the architecture, see Architecture.md.
The latest version includes important fixes to the Performance module:
- UUID Storage: Fixed performance metric storage by changing
object_idfromPositiveIntegerFieldtoCharField(max_length=40)to properly handle UUID primary keys - Primary Key References: Corrected references in calculation services from
.idto model-specific primary key fields (portfolio_id,position_id,transaction_id) - Template Handling: Improved template conditional logic for properly evaluating performance metric access
- Patching Mechanism: Refactored the patch mechanism for
MetricType.get_system_metricto handle class method arguments correctly
See the Changelog for complete details of recent fixes.
EqTrak uses a fixture-based approach for configuration:
- Schema changes in migrations
- Configuration data in JSON fixtures
- Automatic loading at application startup
This approach keeps migrations clean and makes configuration changes easier to manage.
- Development Setup: Setting up the development environment
- Changelog: History of changes and fixes
- Performance Module: Performance tracking features
- Troubleshooting: Common issues and solutions
# Run test suite
python manage.py testThis project is licensed under the MIT License - see the LICENSE file for details.
For support, please:
- Check the documentation
- Review the troubleshooting guide
- Open an issue in the repository
- Contact the development team
Note: This project is under active development. Features and documentation will be updated regularly.