This is a comprehensive Angular 20 and Bootstrap 5 application for managing and visualizing cryptocurrency portfolios through CSV imports from major exchanges.
🎯 Created as a technical showcase for frontend roles – with emphasis on file handling, reactive programming, data visualization, responsive UI and enterprise-grade Angular architecture.
- Binance - Trade history parsing
- Bitpanda - Transaction data import
- Coinbase - Portfolio transactions
- Kraken - Trading data processing
- KuCoin - Exchange data parsing
- Smart auto-detection of exchange formats
- Interactive Charts - Line charts, pie charts, candlestick charts (Chart.js 4)
- Portfolio Performance - Real-time value tracking and 24h changes
- Asset Allocation - Visual breakdown of holdings distribution
- Summary Dashboards - Key metrics and portfolio overview
- Angular 20 Signals - Modern reactive state management
- RxJS Integration - Asynchronous data handling
- Real-time Updates - Live portfolio calculations
- Effect-based Logic - Automatic data synchronization
- Bootstrap 5 - Responsive design system
- Bootstrap Icons - Consistent iconography
- SCSS Styling - Modular and maintainable styles
- Mobile-First - Fully responsive across all devices
- Client-side Processing - No backend required
- Default Portfolio - Pre-loaded demo data
- State Persistence - Holdings data management
- Error Handling - Comprehensive validation and user feedback
PortfolioComponent- Main dashboard with performance metricsMarketComponent- Market overview and analysisCsvImportComponent- File upload and processing interfaceNavigationComponent- App-wide navigation system
LineChartComponent- Portfolio performance over timePieChartComponent- Asset allocation visualizationCandlestickChartComponent- Price movement charts
SummaryCircleComponent- Key metric displaysSummaryCardComponent- Information cardsTitleComponent- Reusable page headers
CsvImportService- Exchange data parsing and validationHoldingsDataService- Portfolio data managementPortfolioCalculationService- Financial calculations and metrics
| Layer | Stack |
|---|---|
| Frontend | Angular 20, Bootstrap 5 |
| State | Angular Signals, RxJS |
| Charts | Chart.js 4, ng2-charts |
| Parsing | PapaParse (CSV processing) |
| Styling | SCSS, Bootstrap Components |
| Language | TypeScript 5.8 |
| Icons | Bootstrap Icons |
🧪 Coming soon: crypto-csv.vercel.app
(or run locally, see below)
git clone https://github.com/david-kolundzic/crypto-dashboard-bootstrap-demo.git
cd crypto-dashboard-bootstrap-demo
npm install
ng serveSample CSV files are included in /assets/ for testing:
BinanceTrade.csv- Binance trading history formatBitpandaTrade.csv- Bitpanda transaction exportCoinbaseTrade.csv- Coinbase portfolio dataKrakenTrade.csv- Kraken exchange transactionsKuCoinTrade.csv- KuCoin trading records
- Modern Angular 20 - Latest features and best practices
- Standalone Components - No NgModules, simplified architecture
- Signal-based Reactivity - Performance-optimized state management
- TypeScript 5.8 - Latest type safety and features
- Component Testing - Jasmine & Karma test setup
- Code Quality - ESLint, Prettier configuration
- Responsive Design - Mobile-first Bootstrap implementation
The portfolio dashboard provides:
- Total Portfolio Value - Real-time valuation
- 24h Profit/Loss - Performance tracking
- Asset Count - Number of holdings
- Allocation Charts - Visual asset distribution
- Performance Graphs - Historical value trends