An open API service indexing awesome lists of open source software.

https://github.com/vineet1025/weather-app

Real-Time Weather Monitoring System
https://github.com/vineet1025/weather-app

hibernate java springboot sql thymeleaf

Last synced: about 2 months ago
JSON representation

Real-Time Weather Monitoring System

Awesome Lists containing this project

README

          


Real-Time Weather Monitoring System



:zap: Live Project



# :notebook_with_decorative_cover: Table of Contents

- [About the Project](#star2-about-the-project)
* [Screenshots](#camera-screenshots)
* [Technologies Used](#space_invader-technologies-used)
* [Features](#dart-features)
* [Environment Variables](#key-environment-variables)
- [Getting Started](#toolbox-getting-started)
* [Prerequisites](#bangbang-prerequisites)
* [Installation](#gear-installation)
- [Deployment](#deployment)
- [Usage](#eyes-usage)
- [Contributing](#wave-contributing)
- [License](#warning-license)
- [Contact](#handshake-contact)
- [Acknowledgements](#gem-acknowledgements)

## :star2: 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.

### :camera: Screenshots




screenshot
screenshot


screenshot
screenshot



### :space_invader: Technologies Used

Backend

Frontend

Database

API Integration

Deployment

### :dart: **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.


### :key: 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`

## :toolbox: Getting Started

### :bangbang: Prerequisites

- Java 17
- Spring Boot 3.2.5
- MySQL
- Maven

### :gear: Installation

1. **Clone the repository**:

```bash
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**:
```bash
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**:
```bash
mvn spring-boot:run
```
4. **Access the application in your browser at** http://localhost:8080/home

### :triangular_flag_on_post: 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**
- You can access the live application at: http://13.201.204.129:8000/home

## :eyes: 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.

## :wave: Contributing

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

## :warning: License

This project is licensed under the MIT License - see the [LICENSE](https://github.com/Vineet1025/Weather-App/blob/master/LICENSE.md) file for details.

## :handshake: Contact

Vineet Jain - [LinkedIn](https://www.linkedin.com/in/vineet-jain1025/) - jvineet1025@gmail.com

Project Link: [https://github.com/Vineet1025/Weather-App](https://github.com/Vineet1025/Weather-App)

## :gem: Acknowledgements

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