Skip to content

manas-shukla-101/Weather-Forecast-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌀️ Weather Forecast Pro

License: MIT Python Version

Weather Forecast Pro is a modern, modular Python application that provides a sleek interface for real-time weather tracking. Powered by the AccuWeather API, it offers detailed current conditions and a comprehensive 5-day forecast.

✨ Key Features

  • Real-time Data: Get current temperature, humidity, wind speed, and pressure.
  • 5-Day Forecast: Plan ahead with a detailed daily weather breakdown.
  • Visual Analytics: View weather trends in a clean, graphical format.
  • Location Management: Save your favorite cities for instant access.
  • Data Export: Save weather reports to CSV/Text files for later reference.
  • Responsive GUI: Built with Tkinter and Pillow for a polished user experience.

πŸ› οΈ Built With

The project leverages the following technologies:

  • Language: Python 3.x
  • GUI: Tkinter, Pillow (PIL)
  • Networking: Requests, JSON
  • Data: CSV, Datetime, ConfigParser
  • API: AccuWeather API

Steps to use:

Step 1: Install the required libraries in requirements.txt file.
Step 2: Run the script using python weather_forecast.py.
Step 3: Enter the city name when prompted.
Step 4: The script will display the current weather and forecast for the next 5 days.
Step 5: The script will also display the temperature and humidity for each day.
Step 6: The script will also display the wind speed and direction for each day.
Step 7: The script will also display the pressure and visibility for each day.
Step 8: The script will also display the sunrise and sunset time for each day.
Step 9: We can refresh the data by clicking on the refresh button.
Step 10: We can save the location by clicking on the save button.

Project structure:

Weather Forcast Pro/
β”‚
β”œβ”€β”€ main.py
β”œβ”€β”€ config.ini
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ README.md
β”‚
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── weather_data.py
β”‚
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ weather_service.py
β”‚   └── file_service.py
β”‚
β”œβ”€β”€ ui/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ main_window.py
β”‚   └── components/
β”‚       β”œβ”€β”€ __init__.py
β”‚       β”œβ”€β”€ forecast_card.py
β”‚       β”œβ”€β”€ weather_card.py
β”‚       └── search_bar.py
β”‚
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ constants.py
β”‚   └── helpers.py
β”‚
└── assets/
    β”œβ”€β”€ icons/
    β”‚   β”œβ”€β”€ clear.png
    β”‚   β”œβ”€β”€ cloudy.png
    β”‚   β”œβ”€β”€ main.png
    β”‚   └── ... (all other icons)
    └── images/
        β”œβ”€β”€ sunrise.png
        β”œβ”€β”€ sunset.png
        └── ... (other images)

πŸ€”Why?

The project is designed to be modular and easy to maintain. Each module has its own responsibilities and is loosely coupled to other modules. This makes it easy to add or remove features without affecting the rest of the application.

πŸͺœSteps to obtain own API key:

  1. Go to AccuWeather and sign up for an API key.
  2. Replace YOUR_API_KEY in config.ini with your actual API key.
  3. Run the application using
python main.py.
  1. If you encounter any issues, refer to the README.md file for troubleshooting tips.

βš™οΈTroubleshooting tips:

  1. Make sure you have the correct API key in config.ini.
  2. Check the console output for any error messages.
  3. If you're using a virtual environment, make sure it's activated before running the application.
  4. If you're still having issues, try running the application with the --debug flag to enable debug mode.
  5. If you're using a different operating system, make sure the application is compatible with it.
  6. If you're using a different Python version, make sure it's compatible with the application.
  7. If you're still having issues, try reinstalling the application or seeking help from a developer.
  8. If you're still having issues, try checking the AccuWeather API documentation for any changes or updates.
  9. If you're still having issues, then you can try to contact me.

πŸ“±Contact:

If you have any questions or need further assistance, feel free to contact me at Email (Only if very important).

πŸ“ƒLicense:

This project is licensed under the MIT License. See the LICENSE file for more information.

β­•Acknowledgments:

I would like to thank my family and friends for their support and encouragement. I would also like to thank my colleagues and mentors for their guidance and advice. I would like to thank the open-source community for their contributions and feedback. I would like to thank the developers of the libraries and frameworks used in this project for their contributions and maintenance. Thanks to AccuWeather for providing the API and documentation. Thanks to Python for providing the programming language. Thanks to Visual Studio Code for providing the code editor. Thanks to GitHub for providing the version control system. Thank You!

πŸ•΅οΈβ€β™€οΈProject details:

 Name: Weather Forecast App
 Start: 2025-07-06
 End: 2025-07-06
 API: AccuWeather
 Platform: Python
 Code-Editor: Visual Studio Code
 Help: AI
 Contact: shuklamanas8928@gmail.com
 Contribution: None
 Licence: MIT


Made with ❀️ by Manas Shukla


🌐 Socials:

Portfolio Instagram LinkedIn email


About

A professional Python weather application featuring a Tkinter GUI and AccuWeather API integration. Get real-time updates and 5-day forecasts with detailed metrics like wind speed, sunrise/sunset, and visibility. Includes location saving, graphical data displays, and a modular architecture for easy maintenance. 🌦️🐍

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages