Skip to content

Vineet1025/Weather-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Weather Monitoring System

📔 Table of Contents

🌟 About the Project

The Real-Time Weather Monitoring System is a robust application designed to fetch, monitor, and analyze weather data for multiple cities in the world. The system utilizes the OpenWeatherMap API to retrieve real-time weather information and alerts users based on customizable temperature thresholds. It features an intuitive user interface built with Spring Boot, Thymeleaf, and Hibernate for seamless interaction and data management.

📷 Screenshots

screenshot screenshot
screenshot screenshot

👾 Technologies Used

Backend
Frontend
Database
API Integration
Deployment

🎯 Features

  • Real-Time Weather Data: Fetch current weather data every 5 minutes for major metro cities in India.

  • Temperature Alerts: Set personalized alerts for temperature thresholds (above/below) and receive email notifications.

  • Daily Weather Aggregation: Store and analyze daily weather data, including average, maximum, and minimum temperatures.

  • Historical Data Tracking: View historical weather data for specific cities with detailed reports.

  • User-Friendly Interface: A very user-friendly web application interface for easy navigation and data visualization.

🔑 Environment Variables

To run this project, you will need to add the following environment variables to your .env file or application.properties

api_key

db_url

db_username

db_password

mail_port

mail_username

mail_password

🧰 Getting Started

‼️ Prerequisites

  • Java 17
  • Spring Boot 3.2.5
  • MySQL
  • Maven

⚙️ Installation

  1. Clone the repository:

    git clone https://github.com/Vineet1025/Weather-App.git
    cd Weather-App
  2. Configure your application.properties for openweathermap api, database connection and notification alert:

    api.key=${api_key} //Enter your openweathermap api key here
    
    //DB connection
    spring.datasource.url=${db_url} //Enter your database url (jdbc:mysql://localhost:3306/weather_app_db)
    spring.datasource.username=${db_username}  //Enter your database username
    spring.datasource.password=${db_password}  //Enter your database passward
    
    //Mail connection
    spring.mail.port=${mail_port}  //Enter your mail port (587)
    spring.mail.username=${mail_username}  //Enter your Email
    spring.mail.password=${mail_password}  //Enter your passkey
  3. Run the application:

    mvn spring-boot:run
  4. Access the application in your browser at http://localhost:8080/home

🚩 Deployment

The application has been successfully deployed on an AWS EC2 instance, allowing for easy access and management of real-time weather data globally.

Accessing the Deployed Application

👀 Usage

  1. Set Up Alerts: Users can create alerts based on temperature thresholds and will receive notifications via email.

  2. View Historical Data: Navigate to the historical data section to view past weather reports for your selected cities.

  3. Dashboard: The main dashboard displays the current weather conditions and any active alerts.

👋 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

⚠️ License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contact

Vineet Jain - LinkedIn - [email protected]

Project Link: https://github.com/Vineet1025/Weather-App

💎 Acknowledgements

  • OpenWeatherMap API for providing weather data.
  • Spring Boot for an efficient backend framework.