-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Our application can give a clear idea about the reflectivity patterns near at any given radar station and location which can be really helpful to the scientific community for understanding weather patterns, storm patterns. Our application is a scalable, fault-tolerant and cloud-native micro service solution.
- Front end - React, Google Auth service.
- API gateway - FastAPI python.
- User and Session Management - Spring boot Java, DB: MYSQL.
- Data retrieval and Plotting - Django Python, AWS, RabbitMQ (producer).
- Weather Forecasting - Python, RabbitMQ (consumer).
Uses Google SSO for authenticating a user. On registering with Google SSO, a user account is created with email address as the username and password is set to default as "asdfghjkl".
API gateway routes all the requests to different microservices. It is written in Python and gets the input from the front end. Clear API's input and output with examples can be found in this file.
This app manages all the user tasks. Registration, validating existing user, user history and tracks all the user activity.
This app receives start date, end date and the Radar location as input from the User through the API gateway. Using the inputs, it connects to the NexRad AWS bucket and downloads the appropriate file.
It extracts import information from the file and plots the Radar graph of Reflectivity levels.
Uses open source weather API to get more details about the weather on a particular day, the location selected by the user. The weather API is called by the Django app using the RabbitMQ message queue service.
Milestone - 1:
Milestone - 2:
- Weather service and Forecasting service with 1 pod
- Weather Service and Forecasting Service with 3 and 5 pods
- User service - 1 pod
- User service -3 and 5 pods
- Auto Scaling
Milestone -3:
Milestone - 4: