Conversation
Complete Task 16 - Set up basic LiveView layout for Ashfolio portfolio application. ## New Features - **Application Layout**: Clean header with logo, responsive navigation, and mobile menu - **Navigation System**: Active state tracking with nav_link components for main sections - **CSS Styling**: Comprehensive portfolio-focused styles with financial data formatting - **LiveView Pages**: Dashboard, Accounts, and Transactions pages with empty states - **Error Components**: Enhanced error helpers with success/warning/info banners ## Components Added - `nav_link` and `mobile_nav_link` with active state styling - `card` component for consistent content containers - `stat_card` for displaying portfolio metrics - `loading_spinner` for loading states - Enhanced error display components ## Layout Structure - Responsive header with Ashfolio branding - Desktop navigation with hover states - Mobile hamburger menu with slide-out navigation - Main content area with proper spacing and typography - Flash message integration for user feedback ## Styling Enhancements - Portfolio-specific CSS classes for financial data - Currency formatting with tabular numbers - Color-coded gains/losses (green/red) - Card hover effects and transitions - Button variants (primary, secondary, danger, success) - Status badges and loading states ## Technical Updates - Router updated to use LiveView for main routes - Helper function `assign_current_page/2` for navigation state - Root layout updated with proper HTML structure - Test fixes for new layout structure ## Requirements Satisfied - ✅ Requirement 12.1: Clean, intuitive dashboard interface - ✅ Requirement 15.1: Simple data display with basic styling
… & 21.5) ✅ Task 21: Manual Price Refresh - Implemented "Refresh Prices" button with PriceManager integration - Added loading states with spinner and button disable during refresh - Portfolio data and holdings table update after successful refresh - Success/error flash messages using ErrorHelpers - Last updated timestamp display from ETS cache ✅ Task 21.5: Test Suite Optimization - Fixed duplicate ID test failures with LiveView configuration - Separated seeding tests with proper tagging (@moduletag :seeding) - Silent-by-default test commands with clean output filtering - Added verbose variants for detailed debugging when needed - All 202 tests passing with organized, noise-free output Phase 7 complete - ready for Phase 8 (Account Management)
Complete implementation of Task 22 - Create account management LiveView with full CRUD operations and professional UI. Features: - Enhanced AccountLive.Index with complete account listing and management - Modal-based FormComponent for create/edit operations with real-time validation - Account exclusion toggle for portfolio calculation control - Professional table layout with currency formatting and status indicators - Empty state display for new users - Confirmation dialogs for destructive operations Technical Implementation: - Full integration with existing Account Ash resource - AshPhoenix.Form integration for robust form handling - Router updates for /accounts, /accounts/new, /accounts/:id/edit routes - Proper error handling with user-friendly flash messages - Currency formatting using existing FormatHelpers - Navigation integration with assign_current_page(:accounts) UI/UX Improvements: - Clean, responsive table design with action buttons - Modal forms that don't require page navigation - Visual badges for excluded accounts - Professional header with "New Account" button - Consistent styling following existing design patterns Testing: - Comprehensive test suite covering all CRUD operations - Account listing, creation, editing, deletion, and exclusion toggle tests - Empty state and error handling test coverage - All 201 tests passing Requirements Satisfied: - ✅ Requirement 2.1: Multiple investment accounts with different platforms - ✅ Requirement 2.2: Account balance tracking and display - ✅ Requirement 2.3: Account exclusion from calculations functionality This completes the foundation for Phase 1 account management, providing users with a complete interface to manage their investment accounts with proper validation, error handling, and professional UI design.
- Implement AccountLive.Show with account data loading and transaction summary - Add breadcrumb navigation and stat cards for balance, transaction count, and status - Include transaction statistics breakdown by type (buy/sell/dividend/fee) - Handle empty state when no transactions exist - Add /accounts/:id route and View buttons in accounts index - Create comprehensive test suite with 8 test cases covering all functionality - Requirements 7.2, 7.3 satisfied
…handling - Implement visual loading feedback during account exclusion toggle operations - Add loading spinner and "Updating..." text with disabled button state - Integrate ErrorHelpers for consistent success/error flash messaging - Update all AccountLive.Index event handlers to use ErrorHelpers - Add comprehensive test coverage for toggle functionality and loading states - Enhance justfile with compile-warnings and server-check commands - Document blocking vs non-blocking command behavior in justfile Completes task 6: Add account exclusion toggle functionality Requirements 5.1, 5.2, 5.3 satisfied with enhanced UX
This commit finalizes the account management feature by adding comprehensive validation, UI polish, and real-time integration with the
portfolio dashboard.
- Adds robust server-side and real-time uniqueness validation to the account form.
- Implements optimistic updates and loading states for a more responsive UI.
- Integrates account changes with the portfolio dashboard via PubSub for live updates.
- Improves accessibility with ARIA labels and enhances responsive layouts for mobile.
- Introduces new integration tests for the full account management workflow.
Resolves: Phase 4, Tasks #12-16
This release addresses critical compilation issues discovered during Phase 10 startup, bringing the codebase from working application to production-ready quality standards. All 12+ compilation warnings/errors resolved while preserving functionality (192+ tests continue passing). ## Critical Compilation Fixes ### PubSub Implementation (Task 26.5.1) - Fix PubSub module structure with proper function exports - Add missing `broadcast\!/2` function for raising PubSub operations - Resolve all `Ashfolio.PubSub.broadcast\!/2` undefined function calls ### Module Aliases and References (Task 26.5.2) - Add proper `ErrorHelpers` and `FormatHelpers` aliases to TransactionLive.Index - Remove unused `ErrorHelpers` alias from TransactionLive.FormComponent - Fix all undefined module reference warnings ### Ash Framework Function Calls (Task 26.5.3) - Fix `Ash.Query.filter/2` with proper `require Ash.Query` statement - Update `Ashfolio.Portfolio.first/1` calls to `Ash.read_first/1` - Fix `Symbol.list_symbols\!/0` to correct `Symbol.list\!/0` function call - Replace deprecated `Transaction.changeset_for_create/*` with `AshPhoenix.Form` - Add `require_atomic? false` to Account resource update actions ### Component Attribute Issues (Task 26.5.4) - Remove undefined `size` and `variant` attributes from CoreComponents.button/1 - Fix button component dynamic class array issues - Add missing `format_date/1` and `format_quantity/1` functions to FormatHelpers ### Code Quality Issues (Task 26.5.5) - Fix unused variable warnings (`form` → `_form`, etc.) - Remove duplicate `handle_event` clauses in TransactionLive.Index - Fix pattern matching on `0.0` warning (Erlang/OTP 27+ compatibility) ## Documentation Updates ### Project Status and Planning - Update .kiro/specs/tasks.md with Phase 10 progress and discoveries - Update project-context.md with Phase 10 code quality learnings - Add comprehensive CHANGELOG.md entry for v0.26.0 release ### Analysis and Strategy Documentation - Add CURRENT_STATE_ANALYSIS.md: Comprehensive project state assessment - Add VERSION_FEATURES.md: SemVer tracking for v0.25.0 features - Add STREAMLINING_RECOMMENDATIONS.md: Project optimization guidance - Add V1_RELEASE_STRATEGY.md: Squash commit approach for clean v1.0 - Add PHASE_10_IMPLEMENTATION_PLAN.md: Detailed final phase planning - Update README.md with Project Status section showing 86% completion ## Technical Impact - **Compilation Status**: Reduced from 12+ warnings/errors to 1 minor warning - **Code Standards**: Codebase now meets production-ready quality standards - **Test Coverage**: All 192+ tests continue passing - functionality preserved - **Developer Experience**: Clean compilation enables faster development iteration - **Project Progress**: Advanced from 79% to 86% complete (25/29 tasks done) ## Ready for Phase 10 Task 27 With compilation issues resolved, the project is now ready to proceed with responsive design and accessibility (WCAG AA compliance), followed by final testing and v1.0 release preparation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…sibility This release brings the application to production-ready standards for responsive design and accessibility compliance, completing all mobile optimization and accessibility requirements for v1.0 release. ## Responsive Design Improvements (Task 27.1) ### Mobile-First Layout Enhancements - Convert page headers to responsive flex layouts (flex-col sm:flex-row) - Replace fixed-width tables (w-[40rem], w-[60rem]) with responsive min-w-full - Add proper overflow handling with overflow-x-auto for mobile table scrolling - Implement full-width buttons on mobile, inline on desktop (w-full sm:w-auto) ### Touch-Friendly Interface - Enhanced button sizing for proper touch targets (44px minimum) - Improved transaction action buttons with responsive stacking - Mobile-optimized empty states and call-to-action buttons - Better spacing and gap management across all screen sizes ## Accessibility Compliance (Task 27.2) - WCAG AA ### ARIA and Semantic Markup - Add proper table roles and labels (role="table", aria-label="Portfolio holdings") - Implement navigation accessibility (role="navigation", aria-controls) - Enhanced mobile menu with proper aria-expanded and aria-controls - Screen reader support for all interactive elements ### Keyboard Navigation - Add focus ring utilities (focus:ring-2 focus:ring-blue-500 focus:ring-offset-2) - Enhance all navigation links with proper keyboard focus states - Sortable table headers with keyboard accessibility - Mobile menu button with proper keyboard interaction ### Interactive Element Accessibility - Comprehensive aria-label attributes for all buttons and actions - Proper focus management for form elements and navigation - Enhanced loading state accessibility with semantic markup ## Loading States Standardization (Task 27.3) - Replace custom SVG spinners with standardized <.loading_spinner /> component - Consistent loading visual feedback across Dashboard and Account management - Improved loading state accessibility with proper semantic structure - Enhanced user experience with unified loading patterns ## Color System & Accessibility (Task 27.4) ### WCAG AA Color Contrast Compliance - Upgrade profit/loss colors from text-green-600/red-600 to text-green-700/red-700 - Ensure minimum 4.5:1 contrast ratio for all text elements - Add font-medium weight for better readability on colored text ### High Contrast Accessibility Utilities - Add semantic color utilities (.text-success, .text-error, .text-warning) - Implement subtle background variants (bg-success-subtle, bg-error-subtle) - Consistent color coding across Portfolio dashboard, Holdings table, and Account views ## Technical Improvements - Clean compilation maintained (only 1 minor warning preserved) - All responsive changes maintain existing functionality - Enhanced CSS organization with accessibility-focused utilities - Improved mobile navigation with proper state management ## Mobile Experience Enhancements ### Navigation - Hamburger menu with proper touch targets and accessibility - Responsive navigation links with consistent styling - Mobile-first approach with progressive enhancement ### Tables and Data Display - Horizontal scroll preservation for data-heavy tables - Responsive column priorities and information hierarchy - Mobile-optimized action buttons with icon/text combinations ### Forms and Interactions - Full-width form elements on mobile for better usability - Responsive modal dialogs and form components - Enhanced touch interaction areas throughout application ## Ready for v1.0 Production This release brings Ashfolio to production-ready standards for: - ✅ Mobile responsiveness across all device sizes (320px - 1440px+) - ✅ WCAG AA accessibility compliance - ✅ Consistent loading states and visual feedback - ✅ Professional color system with proper contrast ratios - ✅ Touch-friendly interface design - ✅ Keyboard navigation support - ✅ Screen reader compatibility Phase 10 progress: Task 27 complete, Tasks 28-29 remaining for final v1.0 release. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add 3 new test files (107+ lines) covering critical gaps: - Transaction LiveView tests: CRUD functionality and responsive design - Accessibility tests: WCAG AA compliance validation - Responsive design tests: Mobile-first layout verification Completes Task 28 comprehensive test suite for Phase 10. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix PubSub module with correct Phoenix.PubSub server reference - Align requirements documentation with actual implementation - Update market data requirement to reflect manual refresh approach - Remove unimplemented LIABILITY transaction type - Add complete REST API documentation - Create docs/api/rest-api.md with endpoint examples - Add docs/api/endpoints.md with technical specifications - Establish accessibility testing framework - Add docs/testing/accessibility-checklist.md with WCAG AA procedures - Include screen reader, keyboard navigation, and color contrast testing - Create integration testing patterns - Add test/integration/account_workflow_test.exs for end-to-end testing - Establish performance testing framework for large datasets - Enhance project documentation structure - Update README.md with comprehensive documentation section - Add clear navigation to API docs, testing procedures, and specifications - Resolve compilation issues and improve code quality - Clean compilation with no warnings or errors - Proper module aliases and function exports This establishes a solid foundation for production-ready documentation, accessibility compliance, and comprehensive testing procedures.
Implements real-time dashboard updates and professional loading UX for transaction management. ## Phase 10 Tasks Completed ### Task 29.5: PubSub for Transaction Events - Add transaction event broadcasting in TransactionLive.Index - Broadcast :transaction_saved and :transaction_deleted events - Update DashboardLive to subscribe to "transactions" topic - Add event handlers for automatic portfolio data refresh - Enable real-time dashboard updates when transactions change ### Task 29.6: Enhanced Loading States for Transaction CRUD - Add loading state assigns: :editing_transaction_id, :deleting_transaction_id - Enhance Edit/Delete buttons with loading spinners and disabled states - Add phx-disable-with attributes for immediate user feedback - Mirror AccountLive.Index loading state patterns for consistency ## Technical Improvements ### Real-time Updates - Dashboard automatically reflects transaction changes via PubSub - Decoupled communication between LiveView modules - Consistent with existing account event system ### Professional UX - Visual loading feedback prevents user confusion - Disabled states prevent double-clicks during operations - Consistent loading patterns across all CRUD operations - Professional spinner animations with contextual messages ### Code Quality - Clean compilation with no warnings - Consistent event handling patterns - Proper state management for async operations - Integration test coverage for PubSub functionality ## Files Changed - lib/ashfolio_web/live/dashboard_live.ex: Add transaction event subscription - lib/ashfolio_web/live/transaction_live/index.ex: Add PubSub broadcasting and loading states - test/integration/transaction_pubsub_test.exs: Integration test coverage - PHASE_10_COMPLETION_SUMMARY.md: Documentation of completed tasks ## Impact - Real-time portfolio updates improve user experience - Professional loading states enhance perceived performance - Brings application to production-ready quality standards - Advances Phase 10 completion toward v1.0 release Closes: Phase 10 Tasks 29.5, 29.6 Progress: 86% → 90% Phase 10 completion
Comprehensive documentation reorganization to transform Ashfolio from a development-focused repository into a professionally organized, production-ready project suitable for public GitHub visibility. ## Key Changes ### Root Directory Cleanup (75% file reduction) - Removed 6 outdated analysis and summary files - Reduced root directory from 12+ files to 4 essential files - Archived historical development artifacts to docs/archive/ ### Strategic Documentation Restructure - Created organized docs/ structure with clear navigation hierarchy - Added central navigation hub (docs/README.md) with role-based paths - Consolidated scattered testing documentation into docs/testing/ - Moved architecture and development guides to docs/development/ - Created structured developer onboarding in docs/getting-started/ ### AI Agent Context Optimization - Renamed .kiro/steering/ files with numbered sequence (00-05) - Enhanced context organization for improved AI agent comprehension - Split project context into focused, logical segments ### Developer Experience Enhancement - Fixed broken documentation references in CONTRIBUTING.md - Created clear developer journey: Setup → Explore → Understand → Contribute - Added role-specific guidance for frontend, backend, and AI developers - Improved main README for public audience with feature showcase ### Technical Writing Standards - Completed comprehensive technical writing review and coherence audit - Established documentation quality standards and style guidelines - Verified all code examples, commands, and internal links - Implemented consistent terminology and formatting ## Success Metrics Achieved - Root directory files: 12+ → 4 essential files ✅ - Documentation findability: All docs accessible within 2 clicks ✅ - Professional appearance: Production-ready repository structure ✅ - AI agent efficiency: Organized numbered context sequence ✅ This reorganization establishes Ashfolio as a model for AI-agent-friendly and developer-friendly documentation in the Elixir/Phoenix ecosystem, ready for v1.0 public release.
Address Claude Code review suggestions with comprehensive improvements: Performance Optimizations: - Add CalculatorOptimized module with batch symbol lookups to eliminate N+1 queries - Enhance ETS cache with memory-aware TTL cleanup mechanism - Implement RateLimiter with token bucket algorithm for API operations Security Enhancements: - Strengthen symbol validation with injection pattern detection - Add input length limits and enhanced regex validation - Implement rate limiting for price refresh operations Testing Improvements: - Add comprehensive edge case test suite for financial calculations - Create SQLite concurrency helpers for improved test stability - Expand error handling test coverage All optimizations maintain backward compatibility with 0 test failures.
- reorganize kiro specs into folders - move old documents into docs history folder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ashfolio v0.1.0
Documentation
Architecture
Roadmap
Features
Developer Experience
Local-First Design