Weather Plus Zero

A modern and user-friendly C# weather application for Windows.

.NET Badge Supabase Badge C# Badge Windows Badge

About the Project

Weather Plus Zero is a comprehensive weather application designed for Windows operating systems, developed using C#. It aims to provide users with instant weather information, hourly/daily forecasts, and essential data like temperature, humidity, and wind speed to help plan their daily lives. It features a modern, user-friendly interface optimized for performance and low resource usage.

Weather Plus Zero Logo

Key Features

  • Instant weather information
  • Hourly and daily forecasts
  • Temperature, humidity, wind speed & direction data
  • Visual weather indicators
  • Customizable notification system
  • Windows compatible modern interface (WPF)
  • Fast and optimized performance
  • Real-time data updates (pulled periodically)
  • Low system resource utilization
  • Secure user authentication and email verification
  • Password reset functionality
  • Encrypted local storage for sensitive user data

Technologies Used

  • C# (C Sharp) Programming Language
  • .NET Core 6.0+
  • WPF (Windows Presentation Foundation)
  • Supabase (PostgreSQL Database & Authentication)
  • Twilio SendGrid (Email Services)
  • Visual Crossing Weather API (Weather Data)
  • Ip-Api (IP-based Geolocation)
  • JSON (Local Data Storage & Configuration)

Setup & Configuration

To run this project locally after cloning, API keys need to be configured in the appsettings.json file. These keys are essential for accessing external services like Supabase, SendGrid, and Visual Crossing.

Important: Do not commit your actual API keys to version control.

{
    "Authentication": {
        "Supabase_Url": "Your_Supabase_URL",
        "Supabase_Key": "Your_Supabse_KEY",
        "Supabase_Service_Role": "Your_Supabase_ROLE",
        "SendGrid_ApiKey": "Your_Twilio_SendGrid_API_KEY",
        "Weather_BaseUrl": "https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/{0}?key={1}&unitGroup=metric",
        "Weather_ApiKey": "Your_Visual_Crossing_API_KEY",
        "Ip_Api_Url": "http://ip-api.com/json"
    },
    "BackgroundImageURLs": {
        "clear-day-background": "https://img.freepik.com/free-photo/sun-flare_74190-1494.jpg"
    },
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning",
            "Microsoft.Hosting.Lifetime": "Information"
        }
    },
    "AllowedHosts": "*"
}

Local Data Storage

The application utilizes two local JSON files stored in C:/Users/UserName/AppData/Local/WeatherZeroPlus/:

  • WeatherData.json: Stores detailed weather data for registered cities (not encrypted).
  • ApplicationActivityData.json: Records user's in-app activities, including email and password. This file is encrypted for security.

Screenshots

User Authentication:

Login Screen New User Registration Forgot Password Screen

Main Application Interface:

Home Screen 1 Home Screen 2

Email Notifications:

Verification Email Password Reset Email Urgent Warning Email

System Architecture & Security

The project follows a layered architecture (Presentation/WPF, Application/Business Logic, Data/API Access). Security is addressed through Supabase authentication, password hashing, email verification, and encryption of local sensitive data.