Skip to content

LucasAlvesSoares/crypto-watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Crypto Watcher - Cryptocurrency Price Alert Desktop App

A cross-platform desktop application for tracking cryptocurrency prices and receiving custom alerts. Built with Rust and Iced.

Features

  • Real-time Price Tracking: Monitor cryptocurrency prices with configurable update intervals (default: 30 seconds)
  • Watchlist Management: Add and remove coins dynamically via horizontal scrolling card interface
  • Custom Alerts: Set three types of alerts:
    • Price above threshold
    • Price below threshold
    • Percentage change (24h) above threshold
  • Desktop Notifications: Native notifications with sound on Windows, macOS, and Linux
  • Persistent State: All settings, watchlist, and alerts survive app restarts
  • Modern UI: Dark theme with purple accents, spacious layout, and medium-rounded components
  • Modular Architecture: Clean design ready for future enhancements like charts

Prerequisites

  • Rust 1.90 or higher
  • Cargo

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/crypto-watcher.git
cd crypto-watcher
  1. Build the project:
cargo build --release
  1. Run the application:
cargo run --release

Usage

Adding Coins to Watchlist

  1. Enter a coin ID in the text input (e.g., bitcoin, ethereum, solana)
  2. Click "Add" or press Enter
  3. The coin will appear in your watchlist with current price and 24h change

Creating Alerts

  1. Click "+ Create Alert" in the Alerts panel
  2. Select a coin from your watchlist
  3. Choose an alert type (Price Above, Price Below, or % Change Above)
  4. Enter the threshold value
  5. Click "Create"

Managing Alerts

  • Active Alerts: Display with "Active" badge and can be deleted
  • Triggered Alerts: Display with "Triggered" badge and can be reset
  • Desktop notifications with sound appear when an alert triggers

Removing Coins

Click the "X" button next to any coin in your watchlist to remove it.

Configuration

Configuration files are stored in platform-specific directories:

  • Linux: ~/.config/CryptoWatcher/
  • macOS: ~/Library/Application Support/com.cryptowatcher.CryptoWatcher/
  • Windows: %APPDATA%\cryptowatcher\CryptoWatcher\

Files:

  • config.json: App settings (update interval, theme)
  • watchlist.json: List of tracked coin IDs
  • alerts.json: Alert configurations and states

Data Source

Cryptocurrency data is fetched from the CoinGecko API (free tier, no API key required).

Building from Source

Development Build

cargo build
cargo run

Release Build (Optimized)

cargo build --release
./target/release/crypto-watcher

Future Enhancements

  • Price charts with historical data
  • More alert types (moving averages, volume triggers)
  • Multiple portfolios/watchlists
  • Dark/light theme toggle
  • Export alerts and watchlist

Technologies

  • Rust 1.90: Systems programming language
  • Iced 0.13: Cross-platform GUI framework (recently upgraded)
  • Reqwest: HTTP client for API calls
  • Serde: Serialization/deserialization
  • Notify-rust: Desktop notifications
  • Tokio: Async runtime

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Acknowledgments

About

Desktop app that tracks changes in crypto price and notifies user. Written in Rust and Iced

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages