Commit Graph

10 Commits

Author SHA1 Message Date
kris
f10332d9f5 Add comprehensive cash savings and transfers system with total holdings tracking
- Add cash accounts management with CRUD operations and account types
- Implement date-stamped transfer system with deposits/withdrawals
- Add total holdings card combining portfolio and cash values
- Create dedicated "Add Transfer" page in navigation
- Include automatic balance calculations and transaction history
- Add database migrations for cash_accounts and cash_transfers tables
- Integrate cash data with dashboard and real-time updates

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 18:54:29 +00:00
kris
503addf705 Add 8+ Year Long-Term CGT Section with 33% Tax Rate
Features:
- New section specifically for holdings over 8 years
- Fixed 33% CGT rate for ultra long-term positions
- Automatic identification of 8+ year old trades
- Comprehensive breakdown showing individual position performance
- Visual cards displaying key metrics:
  - Eligible holdings count and total value
  - Total gains on 8+ year positions
  - CGT liability at 33% rate
  - After-tax gains calculation

Calculation Logic:
- Identifies all buy trades that are 8+ years old (≥2920 days)
- Groups trades by ETF symbol for position-level calculations
- Calculates current value vs original cost basis
- Applies 33% tax rate only to positive gains
- Shows holding period for each position in years
- Displays both gross and net (after-tax) performance

Visual Design:
- Distinct blue color scheme to differentiate from other CGT calculations
- Calendar icon (📅) to emphasize long-term nature
- Detailed breakdown cards for each qualifying position
- Color-coded positive/negative performance indicators
- Professional grid layout with responsive design

Display Features:
- Only appears when current prices are updated
- Hidden when no positions qualify (under 8 years)
- Shows exact holding period in years for each position
- Individual CGT liability and after-tax gains per position
- Clear distinction from existing variable-rate CGT system

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 09:39:27 +00:00
kris
16e77850cd Remove collapsible sidebar functionality
- Remove collapse button from sidebar header
- Remove all collapsed state CSS styling
- Remove JavaScript sidebar toggle functionality
- Remove tooltip functionality and data-tooltip attributes
- Restore sidebar to fixed 260px width
- Clean up mobile responsive CSS
- Remove localStorage sidebar state persistence
- Return to original static sidebar behavior

Sidebar now:
- Fixed 260px width (no collapsing)
- Clean header without collapse button
- Standard menu items with icons + text
- Original mobile slide-out behavior maintained
- Simplified codebase without collapse complexity

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 09:11:56 +00:00
kris
38e72221c9 Make sidebar reactive: icons visible when collapsed, icons+text when expanded
Features:
- Icons remain visible and functional when sidebar is collapsed
- Text labels hidden when collapsed, shown when expanded
- Hover tooltips on collapsed icons show full menu names
- Smooth transitions between collapsed and expanded states
- Enhanced visual feedback with hover effects
- Larger, more prominent icons in collapsed state (1.3rem)
- Proper centering and spacing for collapsed icon navigation

Collapsed State (60px):
- Only icons visible, centered and enlarged
- Hover effects with background highlighting
- Animated tooltips appear on hover showing full names
- Fully functional navigation via icon clicks

Expanded State (260px):
- Icons + text labels both visible
- Normal menu item layout with gaps and spacing
- Full sidebar functionality maintained

User Experience:
- Best of both worlds: minimal space usage + clear navigation
- Tooltips provide context in collapsed state
- Smooth 0.2s transitions for professional feel
- State persistence still maintained via localStorage

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 08:45:33 +00:00
kris
91544ddd91 Fix sidebar icons visibility when collapsed
- Hide all menu icons when sidebar is collapsed
- Hide all menu text, header text, and footer content
- Create completely minimal collapsed state (60px wide)
- Only collapse button remains visible for expanding
- Smooth transitions for all elements
- Clean, distraction-free collapsed sidebar experience

When collapsed, sidebar now shows:
- Only the expand button (›)
- Clean gradient background
- 60px minimal width
- No icons or text bleeding through

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 08:38:53 +00:00
kris
8f141beef5 Add collapsible sidebar menu functionality
Features:
- Sidebar can now be collapsed to save screen space (260px → 60px)
- Collapse button integrated directly into sidebar header
- Smooth animations for expand/collapse transitions
- State persistence using localStorage (remembers user preference)
- Responsive design - collapse feature disabled on mobile devices
- Visual feedback with hover effects and rotation animation
- Icons remain visible when collapsed for easy navigation
- Seamless integration with existing mobile sidebar toggle

User Experience:
- Click the "‹" button in sidebar to collapse
- Click "›" button to expand back to full width
- User preference is saved and restored on page reload
- Main content area automatically adjusts width
- Smooth 0.3s transition animations for professional feel
- Tooltips show current state (Collapse/Expand sidebar)

Technical Implementation:
- CSS transitions for smooth animations
- JavaScript event handling with localStorage persistence
- Responsive CSS media queries for mobile compatibility
- Graceful degradation on smaller screens
- Clean separation of desktop vs mobile behavior

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 20:37:57 +00:00
kris
31a02a69ac Add comprehensive Capital Gains Tax (CGT) calculation feature
Features:
- Configurable CGT rates by holding period (1M, 6M, 1Y, 2Y, 2Y+)
- Annual CGT exemption allowance support
- Real-time CGT calculations based on holding periods
- FIFO (First In, First Out) method for calculating gains
- Interactive CGT settings page with visual rate preview
- Integration with gains/losses page showing:
  - Total CGT liability estimation
  - After-tax gains calculation
  - Effective tax rate display
  - Holdings breakdown by tax period
- Database schema for per-user CGT settings
- Comprehensive API endpoints for CGT management
- Responsive design with professional styling

CGT calculation methodology:
- Uses trade purchase dates to determine holding periods
- Applies different rates based on time held (short vs long term)
- Factors in annual exemption allowance
- Shows estimated tax liability for planning purposes

Default rates (configurable):
- 0-1 Month: 40%
- 1-6 Months: 35%
- 6M-1 Year: 30%
- 1-2 Years: 20%
- 2+ Years: 10%
- Annual exemption: €1,270

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 18:20:36 +00:00
kris
7b88b51bda Add Podman/Docker containerization support
- Dockerfile with Node.js 18 Alpine base image
- Multi-stage build with production dependencies only
- Non-root user for security
- Health checks and proper signal handling
- Volume mounting for persistent database storage
- Docker Compose configuration for easy deployment
- Environment variable support for production config
- Updated README with comprehensive container instructions

Container features:
- Persistent data storage in /app/data volume
- Production-ready configuration
- Security hardened with non-root user
- Health monitoring built-in

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 16:26:24 +00:00
kris
c5a314db74 Add comprehensive README.md
- Installation and setup instructions
- Feature overview and screenshots section
- Default credentials and security info
- API documentation
- Database schema details
- Development and contribution guidelines

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 16:12:42 +00:00
kris
8a68a8bf86 Initial commit: ETF Trade Tracker with multi-user authentication
Features:
- Multi-user authentication system with admin panel
- SQLite database with user isolation
- Trade entry, history, and portfolio tracking
- Gains/losses calculation with price updates
- Responsive design with sidebar navigation
- Session-based authentication with bcrypt password hashing
- Admin user management capabilities

Default admin credentials: admin/admin123

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:36:40 +00:00