Skip to content
GowthamCh edited this page Feb 8, 2022 · 14 revisions

Napkin Diagram:🎯

What did we do?

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.

Architecture Diagram:🧐

image

UserFlow Diagram 😀

Installation Guide👨🏻‍💻

Installation page Wiki

Demo:

IMAGE ALT TEXT

Technologies Used: 🧰

  1. Front end - React, Google Auth service.
  2. API gateway - FastAPI python.
  3. User and Session Management - Spring boot Java, DB: MYSQL.
  4. Data retrieval and Plotting - Django Python, AWS, RabbitMQ (producer).
  5. Weather Forecasting - Python, RabbitMQ (consumer).

Authentication service:🔐

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: 🌉

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.

User management and session service: 🤹‍♂️

This app manages all the user tasks. Registration, validating existing user, user history and tracks all the user activity.

Data retrieval and plot Service: 📊

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.

Weather forecasting service. 🌤️

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.

Clone this wiki locally