- Backend WS: Changed from localhost:3000/ws/trading to localhost:3080/ws
- ML Engine WS: Changed from localhost:8001 to localhost:3083
- Portfolio WS: Changed from localhost:3000/ws/portfolio to localhost:3080/ws
- Backend uses single /ws path with message types for channel differentiation
- ML Engine has dedicated /ws/signals endpoint
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace simulated video upload with real multipart upload to backend.
New Files:
- src/services/video-upload.service.ts (NEW): Complete multipart upload service
- Initialize upload with backend
- Split file into 5MB parts
- Upload parts to S3/R2 using presigned URLs
- Upload max 3 parts in parallel
- Complete upload and return video object
- Full upload flow with progress callbacks
Updated Files:
- src/modules/education/components/VideoUploadForm.tsx (UPDATED):
- Import videoUploadService
- Replace simulated upload (lines 214-248) with real API calls
- Use progress callbacks to update UI
- Handle real video ID on completion
- Maintain all existing UI/UX behavior
Upload Flow:
1. User selects video + fills metadata
2. Call videoUploadService.uploadVideo()
3. Backend initializes multipart upload
4. Split file into 5MB chunks
5. Upload chunks to S3/R2 (presigned URLs)
6. Backend completes upload
7. Video processing starts automatically
8. UI shows real-time progress
Technical Details:
- Part size: 5MB (optimal for network)
- Max concurrent uploads: 3 parts
- Uses fetch API for S3 direct upload
- ETags returned for multipart completion
- Full error handling and retry capability
Status: BLOCKER-003 (ST4.3) - 89% complete (5/6 tasks done)
Task: #10 ST4.3.5 - Frontend integrar VideoUploadForm con backend
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create AlertsPanel component with full CRUD functionality
- Add alerts API functions to trading.service.ts
- Integrate AlertsPanel into Trading.tsx with toggle button
- Support for above/below/crosses conditions
- Push and email notification options
- Recurring alerts support
- Filter by active/inactive status
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create AccountDetail.tsx with tabs for overview, transactions, distributions, deposit, withdraw
- Create investment.service.ts with full API client for investment endpoints
- Add routes /investment/portfolio, /investment/products, /investment/accounts/:accountId
- Integrate DepositForm and WithdrawForm components
- Add canvas-based performance chart
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create portfolioStore.ts with Zustand for state management
- Add portfolioWS instance for real-time portfolio updates
- Add usePortfolioUpdates hook for WebSocket subscriptions
- Refactor PortfolioDashboard to use store instead of local state
- Add WebSocket connection status indicator (Live/Offline)
- Add last update timestamp display
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add PerformanceChart component with canvas-based line chart
- Add EditAllocations page for modifying target allocations
- Integrate PerformanceChart into PortfolioDashboard
- Add route for /portfolio/:portfolioId/edit
- Extend portfolio.service with performance API functions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Created portfolio.service.ts with API client functions
- Created AllocationChart component (donut chart)
- Created AllocationTable component (detailed positions)
- Created RebalanceCard component (rebalancing recommendations)
- Created GoalCard component (financial goal progress)
- Created PortfolioDashboard page (main dashboard)
- Created CreatePortfolio page (new portfolio form)
- Created CreateGoal page (new goal form)
- Updated App.tsx with portfolio routes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add notification service for API calls
- Add notification Zustand store with WebSocket integration
- Create NotificationBell component with badge
- Create NotificationDropdown with recent notifications
- Create NotificationItem with icons and actions
- Update MainLayout to use NotificationBell
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>