A desktop application built with WPF/.NET that displays cryptocurrency exchange data using the Coinlore API. This application allows users to select from various cryptocurrency exchanges and view their trading pairs with real-time or cached data.
- Live Exchange Data: Fetch cryptocurrency exchange information from the Coinlore API
- Multiple Exchange Support: View trading pairs from various exchanges
- Robust Parsing: Handles multiple API response formats with fallback mechanisms
- Real-time Data: Automatically refreshes outdated price timestamps
- Custom Styling: Sleek cyberpunk-themed UI with custom controls
- Responsive Interface: Async operations keep the UI responsive during data loading
- Windows operating system
- .NET 6.0 or later
- Visual Studio 2019/2022 (recommended) or other .NET IDE
-
Clone the repository:
git clone https://github.com/mars-rift/cryptoview.git
-
Open the solution file in Visual Studio:
cryptoview.sln
-
Build and run the application:
- Press F5 in Visual Studio, or
- Use the command line:
dotnet build
followed bydotnet run
- When the application starts, it automatically loads a list of available exchanges
- Select an exchange from the dropdown menu
- Click the "LOAD DATA" button to fetch trading pairs for the selected exchange
- View exchange information and trading pairs in the data grid
- The status bar at the bottom provides feedback on operations
- MainWindow.xaml / MainWindow.xaml.cs: Main application UI and logic
- Data Models:
Exchange
: Basic exchange informationExchangeInfo
: Detailed exchange information including name, founding date, and URLTradingPair
: Trading pair data including base/quote currencies, price, volume, and timestampExchangeData
: Container for exchange info and pairs with JSON deserialization support
- HTTP Client: Uses
HttpClient
for API requests - JSON Parsing: Uses System.Text.Json for deserialization with fallback parsing strategies
- Async/Await: All network operations are asynchronous for UI responsiveness
- Error Handling: Comprehensive try/catch blocks with user feedback
- Timestamp Management: Converts Unix timestamps to readable datetime strings
The application uses the Coinlore API:
- Exchange list:
https://api.coinlore.net/api/exchanges/
- Exchange details:
https://api.coinlore.net/api/exchange/?id={exchangeId}
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Coinlore API for providing cryptocurrency exchange data