WeatherPredict is a cross-platform desktop weather app built with Python. It brings together current conditions, short-term forecasts, historical weather views, air quality data, map links, disaster alerts, and a small world-clock panel in one place.
The project is meant to feel like a practical personal tool: something useful for daily checks, travel planning, or quick weather lookups without needing to open a browser.
- Search for a place and view current weather plus forecast cards
- Review historical weather over a selected date range
- Check air quality values with simple summary cards
- Save a small list of favorite cities for fast access
- Open a native Windy map window for the selected place
- See recent disaster alerts from the GDACS feed
- Python 3.9+
- CustomTkinter for the desktop interface
- Requests for API calls
- Matplotlib for forecast and history charts
- PyWebView for the embedded map window
- main.py: app entry point
- weatherpredict/app.py: main UI and app flow
- weatherpredict/api.py: API request handling and parsing
- weatherpredict/models.py: shared data models
- weatherpredict/storage.py: local JSON storage for favorites and app state
- weatherpredict/map_viewer.py: map window launcher
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtpython3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython main.pyFavorites and the last-selected location are stored in the user profile under:
- ~/.weatherpredict/favorites.json
- ~/.weatherpredict/state.json
These paths are handled through Python’s standard library so the app behaves consistently across Windows, macOS, and Linux.
- Weather and air-quality data come from Open-Meteo.
- Disaster alerts are pulled from the GDACS RSS feed.
- The app surfaces network and API problems through its UI rather than silently failing.
- improve offline and error handling
- add a settings screen
- refine the visual layout and responsiveness
- package the app for easier installation on each platform