Skip to content

A beautiful cross-platform weather dashboard with stunning animations and circadian theme adaptation. Built with Avalonia UI & .NET 9.

Notifications You must be signed in to change notification settings

MehranQadirian/Weather-Dashboard

Repository files navigation

Weather Dashboard

A modern cross-platform weather application built with Avalonia UI and .NET 9, featuring real-time data, dynamic animations, and adaptive themes.

Platform .NET Avalonia

Features

  • UI Design: Material Design 3 with glassmorphism, smooth animations, circadian themes (12 periods), interactive charts, and responsive layout.
  • Weather Data: Real-time from OpenWeatherMap, 7-day forecast, hourly trends, multi-city tracking, advanced search (e.g., rainy:london).
  • Animations: Realistic effects for clouds, rain, snow, lightning, fog, sun, and day/night cycles based on sunrise/sunset.
  • Data Management: Local storage for favorites, caching, persistent settings, auto-refresh.

Screenshots

Main Dashboard

Main Dashboard

Getting Started

Prerequisites

Installation

  1. Clone the repository:
    git clone https://github.com/mehranqadirian/Weather-Dashboard.git
    cd Weather-Dashboard
    
  2. Restore dependencies:
    dotnet restore
    
  3. Configure API Key: Replace YOUR_API_KEY in Services/WeatherApiService.cs with your OpenWeatherMap key.
  4. Build and run:
    dotnet build
    dotnet run --project Weather.Dashboard.Avalonia
    

Pre-built Releases

Download the latest version from Releases.

Windows

Linux

macOS

Advanced Search

Search bar supports filters:

  • City: london
  • Conditions: rainy:tokyo, snowy:moscow, sunny:california (also cloudy, storm, partly, foggy).

Architecture

Project Structure

Weather.Dashboard.Avalonia/
├── Controls/              # Custom UI controls
│   ├── AnimatedBackgroundControl.axaml
│   ├── CityWeatherCard.axaml
│   ├── DetailView.axaml
│   └── SimpleLineChart.axaml
├── Services/             # Business logic
│   ├── WeatherApiService.cs
│   ├── CacheService.cs
│   ├── CircadianThemeService.cs
│   └── AnimationService.cs
├── ViewModels/           # MVVM ViewModels
│   ├── MainViewModel.cs
│   └── CityWeatherViewModel.cs
├── Models/               # Data models
│   ├── CurrentWeather.cs
│   ├── ForecastItem.cs
│   └── AnimationState.cs
└── Styles/               # UI styling
    ├── CommonStyles.axaml
    └── Colors.axaml

Technologies

  • Avalonia UI 11.3.7
  • .NET 9.0
  • Polly for resilience
  • System.Text.Json
  • OpenWeatherMap API
  • Material Design 3

Customization

  • Edit AnimationState.cs for particle/speed adjustments.
  • Extend WeatherCondition enum in Models/WeatherCondition.cs for new conditions.
  • Modify CircadianThemeService.cs for theme colors.

Acknowledgments

Contact

Known Issues

  • AppImage needs testing on Linux.
  • Animations may lag on older hardware.
  • API limits: 60 calls/minute (free tier).

Roadmap

  • Air quality display
  • Alerts/notifications
  • Historical charts
  • Desktop widgets
  • Multi-language
  • Theme override
  • CSV export

Made with ❤️ using Avalonia UI

⭐ Star this repo if you find it useful!