1.
Project Proposal
Project Title:
Weather Console App using Java and OOP
2. Purpose and Problem Statement:
The project aims to provide real-time weather updates for any city using the
OpenWeatherMap API. It addresses the need for quick, console-based weather
information without relying on browser-based services.
Relevance of OOP:
This project uses OOP to organize code into modular, maintainable, and reusable
classes. It demonstrates the core principles of object-oriented design including
abstraction, encapsulation, inheritance, and polymorphism.
3. Main Goals and Key Functionalities:
Goals:
Learn practical application of Java and OOP
Work with APIs in a Java console environment
Key Functionalities:
Fetch current weather for any city
Display temperature and condition (like "clear sky", "rain", etc.)
Handle API errors gracefully
5. Technology Stack:
Programming Language: Java
Libraries: [Link] for parsing JSON
Frameworks: None (pure Java)
Database: Not required
6. Use of OOP Principles:
Encapsulation:
API key and URL are kept private/protected.
Public methods like displayWeather() and getWeatherData() expose required
functionality.
Inheritance:
WeatherApp extends BaseWeatherApp, reusing and enhancing base methods.
Polymorphism:
Demonstrated through method overriding (e.g., displayWeather()).
Abstraction:
Implementation of weather fetching is hidden behind getWeatherData() method.
7. Project Phases & Timeline:
8. Final Product & Usefulness:
The final application will allow users to enter a city name and receive live weather
information. It’s a lightweight tool ideal for quick weather checks and a great example
of real-world Java + OOP.
9. Summary:
This project demonstrates how Java can be used to build practical applications. By
applying core OOP principles and API integration, it offers both educational value
and real-world utility.
10. References:
OpenWeatherMap API Docs: [Link]
[Link] Library: [Link]
Java Documentation: [Link]