Develop a real-time data processing system to monitor weather conditions and provide summarized insights using rollups and aggregates. The system utilizes data from the OpenWeatherMap API.
The system continuously retrieves weather data from the OpenWeatherMap API. Actually You will need to sign up for a free API key to access the data. The API provides various weather parameters, and for this project, I focus on:
- main: Main weather condition (e.g., Rain, Snow, Clear)
- temp: Current temperature in Centigrade
- feels_like: Perceived temperature in Centigrade
- dt: Time of the data update (Unix timestamp)
- The system continuously calls the OpenWeatherMap API at a configurable interval (e.g., every 5 minutes) to retrieve real-time weather data for major metros in India
- For each received weather update:
- Convert temperature values from Kelvin to Celsius (based on user preference).
-
Daily Weather Summary:
- Roll up the weather data for each day.
- Calculate daily aggregates for:
- Average temperature
- Maximum temperature
- Minimum temperature
- Dominant weather condition (based on frequency of occurrence).
-
Alerting Thresholds:
- Define user-configurable thresholds for temperature or specific weather conditions (e.g., alert if temperature exceeds 35 degrees Celsius).
- Continuously track the latest weather data and compare it with the thresholds.
- If a threshold is breached, trigger an alert for the current weather conditions. Alerts could be displayed using Toaster.
-
Implement Visualizations:
- Display daily weather summaries, historical trends using recharts.
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd Weather-Monitoring - Install dependencies:
npm install
- Start the application:
npm start
https://weather-monitoring-dashboard.web.app/