How zxcdenjir/cryptoportfolio-tracker works
This is a cross-platform Avalonia cryptocurrency portfolio tracker. Its visible workflow centers on loading a saved coin catalog, enriching it with CoinGecko market data, and presenting portfolio balances and price history; users can also manage wallets and transactions and export CSV files. The sampled code confirms the home-market-data and add-cryptocurrency paths, EF Core persistence, and CSV export. Other screens are represented from the file tree, but their internal wiring was not sampled.
Main entry points: HomeViewModel.cs Portfolio home · CoinGeckoApi.cs CoinGecko client · CryptoContext.cs EF data context · AddCryptoViewModel.cs Add cryptocurrency
Components 22
App and navigation
- App startup
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/App.axaml.cs - Main navigation
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/MainViewModel.cs - Login
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/LoginViewModel.cs - Settings
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/SettingsViewModel.cs
Portfolio and markets
- Portfolio home
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/HomeViewModel.cs - Add cryptocurrency
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/AddCryptoViewModel.cs - Edit cryptocurrency
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/EditCryptoViewModel.cs - Price chart
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/CryptoChartViewModel.cs - Cryptocurrency model
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/Models/Cryptocurrency.cs
Wallets and transactions
- Wallet management
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/WalletsViewModel.cs - Add wallet
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/AddWalletViewModel.cs - Transactions
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/TransactionsViewModel.cs - Add transaction
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/AddTransactionViewModel.cs - Wallet history
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/ViewModels/WalletTransactionHistoryViewModel.cs - Wallet model
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/Models/UserWallet.cs
Data and integrations
- EF data context
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/Context/CryptoContext.cs - PostgreSQL
- CoinGecko client
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/Core/CoinGeckoApi.cs - HTTP state
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/Core/AppState.cs - CSV export
CryptoPortfolio Tracker/CryptoPortfolio_Tracker/Core/CsvExportService.cs
Other components
- User
- CoinGecko API
Connections 20
- User → App startup: starts app
- App startup → Main navigation: creates
- User → Portfolio home: uses
- User → Wallet management: manages wallets
- User → Transactions: records activity
- Portfolio home → EF data context: loads catalog
- Portfolio home → CoinGecko client: requests markets
- Portfolio home → CoinGecko client: requests history
- Portfolio home → Cryptocurrency model: updates market fields
- Portfolio home → EF data context: loads portfolio
- Portfolio home → CSV export: exports coins
- Add cryptocurrency → CoinGecko client: searches coins
- Add cryptocurrency → EF data context: loads reference data
- Add cryptocurrency → EF data context: saves coin
- Add cryptocurrency → Portfolio home: reloads catalog
- Wallet management → Wallet history: opens history
- EF data context → PostgreSQL: reads and writes
- CoinGecko client → HTTP state: uses HTTP client
- CoinGecko client → CoinGecko API: requests data
- Wallet model → Cryptocurrency model: uses current price