Skip to content

Python Weather Forecast Evolution: From Basic Tkinter Display To Advanced CustomTkinter Interface - Dynamic Weather Images, Multi-Threaded Loading, Smart Fallback System, Color Themes, And Real-Time Data From 3 APIs - Complete Visual Weather Experience 🌦️

Notifications You must be signed in to change notification settings

hexbido/Weather-Forecast-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Weather Forecast App Sun Behind Rain Cloud

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.

AboutTech StackGalleryEvolutionHow To RunWarnings


separator

About The Project Memo

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.


separator

Tech Stack & Tools Tools

Python CustomTkinter WeatherAPI Requests Pillow VS Code Miro

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.


separator
The Project Followed A Structured "Plan-Then-Code" Approach - Below Is The Comparison Between The Planning Phase And The Final Execution For Both Versions.

Basic Version Advanced Version
Planning (Logic)

Basic Flowchart
Planning (Logic)

Advanced Flowchart
Execution (Main Result)

Basic Output
Execution (Main Result)

Advanced Output
UI Design

Basic UI
UI Design

Advanced UI

View More Screenshots (Click Here) Search

Basic Version - Extra Shots

Basic Shot 2 Basic Shot 3





Advanced Version - Extra Shots

Advanced Shot 2 Advanced Shot 3

Almdrasa Logo

Live Demo Video

Watch The Application In Action: Real-Time Weather Fetching, Dynamic Backgrounds, And Inspirational Quotes.

Watch Video
Click To Watch Video ▷

separator

Features & Evolution Rocket

The Transition From The Basic Weather Display To The Advanced Multi-API Application Highlights A Significant Leap In Visual Appeal And Data Integration.

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

Key Features In Advanced Version Star

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.


separator

Installation & Usage Download

Follow The Steps Below To Run The Project Locally On Your Machine - Ensure You Have Python 3.10+ Installed.

1️⃣ Clone The Repository

Open Your Terminal And Run The Following Command To Download The Project Files:
git clone https://github.com/hexbido/Weather-Forecast-App.git
cd Weather-Forecast-App

2️⃣ Install Required Dependencies

Install The Necessary Python Packages Using Pip:
# 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

3️⃣ Get Your Free API Keys

Register For Free API Keys (Takes 2-3 Minutes):
🌦️ 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!)

4️⃣ Run The Basic Version

Navigate To The Basic Version Folder And Execute The Simple Weather App:
# For Windows:
cd Basic-Version
python Weather_Forecast_App.py

# For macOS/Linux:
cd Basic-Version
python3 Weather_Forecast_App.py

5️⃣ Run The Advanced Version (Multi-API)

To Launch The Full Application With All Advanced Features:
# For Windows:
cd Advanced-Version
python Weather_Forecast_App_AI.py

# For macOS/Linux:
cd Advanced-Version
python3 Weather_Forecast_App_AI.py

6️⃣ Using The Application

Follow These Simple Steps To Check Weather And Enjoy Visual Features:

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.


separator

Warnings & Troubleshooting Warning

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 Red Heart By B I D O

About

Python Weather Forecast Evolution: From Basic Tkinter Display To Advanced CustomTkinter Interface - Dynamic Weather Images, Multi-Threaded Loading, Smart Fallback System, Color Themes, And Real-Time Data From 3 APIs - Complete Visual Weather Experience 🌦️

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages