A Professional Weather Tracking Solution: From Simple API Integration To Advanced Real-Time Weather Display, Dynamic Background Images, Inspirational Quotes, And Multi-Threaded Data Fetching.
About • Tech Stack • Gallery • Evolution • How To Run • Warnings
This Repository Represents The Seventh Major Milestone In My Front-End Diploma (Programming Fundamentals Track).
It's More Than Just A Weather App, It's A Documentation Of My Journey In API Integration & Real-Time Data Visualization - The Project Chronicles The Evolution From Simple Weather Data Fetching Using Requests Module To A Sophisticated Weather Application Powered By CustomTkinter Framework With Dynamic Visual Effects.
The Final Version Is An Intelligent Weather Tool That Provides Live Weather Data From WeatherAPI, Features A Modern Dark Mode Interface With Dynamic Background Images From Unsplash API, Implements Multi-Threaded Image Loading For Smooth Performance, Displays Inspirational Quotes From ZenQuotes API, And Includes Smart Features Like Weather-Based Color Themes, Image Filters, And Real-Time Local Time Display.
• Python (3.10+): The Core Language Driving All Application Logic, API Communication, And Image Processing Operations.
• CustomTkinter Framework: Powers The Modern Visual Interface With Custom Widgets, Dark Mode Support, And Smooth Animations.
• Requests Module: Handles All HTTP Communication With WeatherAPI, Unsplash, And ZenQuotes For Fetching Live Data.
• WeatherAPI: Provides Real-Time Weather Data Including Temperature, Humidity, Wind Speed, UV Index, And Local Time.
• Unsplash API: Supplies High-Quality Weather-Themed Background Images That Match Current Weather Conditions Dynamically.
• Pillow (PIL): Manages Image Processing Including Resizing, Filtering, Color Enhancement, And Applying Weather-Based Visual Effects.
• Threading Module: Implements Background Image Loading To Prevent UI Freezing During Network Operations And API Calls.
• ZenQuotes API: Fetches Random Inspirational Quotes To Display At The Bottom Of The Application For User Motivation.
• Miro: Used For Planning And Designing The Application Architecture, UI Layout, And Feature Flow Before Development.
| Basic Version | Advanced Version |
|---|---|
Planning (Logic)
|
Planning (Logic)
|
Execution (Main Result)
|
Execution (Main Result)
|
UI Design
|
UI Design
|
Watch The Application In Action: Real-Time Weather Fetching, Dynamic Backgrounds, And Inspirational Quotes.
Click To Watch Video ▷
| Feature | Basic Version | Advanced Version (Multi-API) |
|---|---|---|
| Interface Framework | Standard Tkinter | CustomTkinter (Modern UI) |
| Visual Design | Static Background | Dynamic Images (Weather-Based) |
| Data Display | 5 Basic Stats | 8 Detailed Stats + UV Index |
| API Integration | Weather API Only | 3 APIs (Weather + Images + Quotes) |
| Image Processing | No Image Support | PIL Filters & Weather Effects |
| Performance | Synchronous Loading | Multi-Threading (Non-Blocking) |
| Extra Features | Weather Data Only | Quotes + Logo + Themes |
• Real-Time Weather Data: Fetches Live Weather Information Including Temperature (°C/°F), Humidity, Wind Speed, Pressure, Precipitation, UV Index, And Local Time.
• Dynamic Background Images: Automatically Downloads Weather-Appropriate Images From Unsplash API Based On Current Conditions (Rain, Sunny, Snow, Cloudy).
• Weather-Based Color Themes: Applies 12 Unique Color Palettes That Match Weather Conditions For Enhanced Visual Experience.
• Image Filters & Effects: Uses PIL (Pillow) To Apply Blur, Brightness, Contrast, And Color Adjustments Based On Weather Type.
• Multi-Threaded Loading: Implements Background Threading For Image Fetching To Keep UI Responsive During Network Operations.
• Inspirational Quotes: Displays Random Motivational Quotes From ZenQuotes API At The Bottom Of The Interface.
• Smart Fallback System: Includes Multiple Backup Image Sources (Pexels, Picsum) If Primary API Fails For Maximum Reliability.
• Professional UI Design: Features Modern Dark Mode, Rounded Corners, Custom Icons, And Smooth Animations For Premium Feel.
git clone https://github.com/hexbido/Weather-Forecast-App.git
cd Weather-Forecast-App# For Windows Users:
pip install requests # Basic Version
pip install customtkinter requests pillow # Advanced Version
# For macOS/Linux Users:
pip3 install requests # Basic Version
pip3 install customtkinter requests pillow # Advanced Version🌦️ WeatherAPI (Required For Both Versions):
1. Visit: https://www.weatherapi.com/
2. Click "Get Free Key"
3. Sign Up With Email
4. Copy Your API Key
5. Paste It In Line ~13 Of The Code: API_KEY = "YOUR_KEY_HERE"
📷 Unsplash API (Required For Advanced Version Only):
1. Visit: https://unsplash.com/developers
2. Register New Application
3. Copy Your Access Key
4. Paste It In Line ~23 Of Advanced Code: UNSPLASH_ACCESS_KEY = "YOUR_KEY_HERE"
💭 ZenQuotes API (No Key Required - Works Automatically!)
# For Windows:
cd Basic-Version
python Weather_Forecast_App.py
# For macOS/Linux:
cd Basic-Version
python3 Weather_Forecast_App.py# For Windows:
cd Advanced-Version
python Weather_Forecast_App_AI.py
# For macOS/Linux:
cd Advanced-Version
python3 Weather_Forecast_App_AI.py
• Searching Weather: Type Any City Name In The Search Box And Press Enter Or Click Search Button.
• View Temperature: See Temperature In Both Celsius (°C) And Fahrenheit (°F) Formats Simultaneously.
• Check Additional Stats: View Humidity, Wind Speed, Pressure, Precipitation, UV Index, And Local Time Of The City.
• Dynamic Backgrounds: Watch The Background Automatically Change Based On Current Weather Conditions (Advanced Version Only).
• Inspirational Quotes: Read A New Motivational Quote Each Time You Search For Weather (Advanced Version Only).
• Loading Indicator: See A 🌀 Spinner While The App Fetches Data And Images From APIs.
Please Review The Following Notes To Ensure Smooth Operation And Avoid Common Issues:
• API Keys Required: The Application Requires A Valid WeatherAPI Key - Get Yours For Free At https://www.weatherapi.com/ (No Credit Card Needed).
• Unsplash API (Advanced Only): The Advanced Version Needs An Unsplash Access Key For Background Images - Register At https://unsplash.com/developers.
• Internet Connection: A Stable Internet Connection Is Required For Real-Time Data Fetching - The App Will Show Error Messages If Connection Fails.
• API Rate Limits: Free Tier Allows 1,000,000 Requests/Month For WeatherAPI And 50 Requests/Hour For Unsplash - Avoid Excessive Searches.
• CustomTkinter Installation: The Advanced Version Requires customtkinter Package - Install With: pip install customtkinter (Windows) Or pip3 install customtkinter (macOS/Linux).
• Pillow (PIL) Requirement: Image Processing Needs Pillow Library - Install With: pip install pillow (Windows) Or pip3 install pillow (macOS/Linux).
• City Name Format: Use Standard City Names (e.g., "Cairo", "New York", "London") - Avoid Special Characters Or Invalid Names.
• Image Loading Time: Background Images May Take 3-10 Seconds To Load Depending On Your Internet Speed - A Spinner Will Show During Loading.
• Logo File (Advanced): Place almdrasa-logo.png In The Same Folder As The Script - The App Will Show Text Logo If File Is Not Found.
• Fallback Images: If Unsplash API Fails, The App Uses Pexels/Picsum As Backup Sources - Some Images May Load Slower Than Others.
Made With
By B I D O










