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
- Host: GitHub
- URL: https://github.com/vineet1025/weather-app
- Owner: Vineet1025
- License: mit
- Created: 2024-10-20T08:54:57.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-24T13:07:49.000Z (over 1 year ago)
- Last Synced: 2025-02-08T04:45:52.785Z (over 1 year ago)
- Topics: hibernate, java, springboot, sql, thymeleaf
- Language: Java
- Homepage: http://13.201.204.129:8000/home
- Size: 96.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# :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
### :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.