Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ptr-cs/modern-weather-app
API-enabled WPF weather app using MahApps Metro.
https://github.com/ptr-cs/modern-weather-app
accuweather accuweather-api csharp dotnet mahapps mvvm nunit themes tiles ui weather weather-api weather-app weather-forecast wpf
Last synced: 2 months ago
JSON representation
API-enabled WPF weather app using MahApps Metro.
- Host: GitHub
- URL: https://github.com/ptr-cs/modern-weather-app
- Owner: ptr-cs
- License: mit
- Created: 2022-10-24T04:06:21.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-02T02:13:41.000Z (about 1 year ago)
- Last Synced: 2024-02-20T16:39:21.139Z (11 months ago)
- Topics: accuweather, accuweather-api, csharp, dotnet, mahapps, mvvm, nunit, themes, tiles, ui, weather, weather-api, weather-app, weather-forecast, wpf
- Language: CSS
- Homepage:
- Size: 3.61 MB
- Stars: 9
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Modern Weather App
WPF weather app using MahApps Metro and the Accuweather API. Support for light/dark modes and custom accent colors. Demo mode data is provided via Entity Framework Core from a Sqlite database with randomized results. Testing ongoing with nUnit. Prototyped with Adobe XD.
![weather-app-mockup](https://user-images.githubusercontent.com/112029487/198957729-cae2744c-0b12-47c9-aef1-2df051bc3bca.png)
# Try it Out:
- **Demo mode**: On the Settings page, set the Demo Mode toggle switch to "On" to enable Demo mode. In this mode, randomized data will be returned for location search queries on the Weather page.
- **API mode**: On the Settings page, with the Demo Mode toggle switch to "Off", enter an AccuWeather API key to return API results to location search queries on the Weather page.![WPF-weather-appThumbv3](https://user-images.githubusercontent.com/112029487/198901489-b205c205-a96e-4500-9846-81d852e94cca.png)
# Text search:
![zeno-weather-app-searches](https://user-images.githubusercontent.com/112029487/198901498-f0d2d479-e5f2-4c45-9ce4-28d51645c580.gif)
# Themes:
![zeno-weather-app-themes](https://user-images.githubusercontent.com/112029487/198901504-e1d8fdd3-634a-4eed-aab9-18f69300668f.gif)## Summary:
The app uses Service Oriented Architecture (SOA) to provide the weather service via a service bus, which is accessed primarily by the weather ViewModel - the Model-View-ViewModel (#MVVM) approach is used to maintain a separation of concerns between frontend and backend code. The weather service contains methods for asynchronously getting HTTP responses from calls to the Location, Current Conditions, and Forecast AccuWeather APIs; the results from these methods are then processed by the weather ViewModel, which in turn exposes the data to the weather page View.