Skip to content
DishaTalreja3 edited this page Feb 14, 2020 · 13 revisions

`Welcome to the Orenda wiki!

Our Technology Stack

  • UI: ReactJS
  • Microservices: Java, Python, NodeJS
  • Database: MongoDB
  • Streaming: Kafka

The Architecture

User Experience

  1. User must be able to register and log into the system
  2. User must be able to get the plots describing the weather forecast for the selected Month, Day, Year and Region.
  3. User must be able to view all of his/her previous session activities (all MM/DD/YYY and the regions that were selected and the plots that were received)

To start with setting up the project go to Orenda Page

Microservices

The system has 6 microservices. Below is the detailed description of each service.

API Gateway

This is a routing service. This service acts as a message router between the user ( front-end) and our application.

User Management Service

This service is used for authentication.

Data Retrieval Service

The Data Retrieval Service accepts a JSON text which has the date, time, radar id, userid, correlationid. Technically this service is a RabbitMq consumer. It consumes the message from the queue processes it and then forwards it to another queue. The service uses the inputs to download the nexrad data. The service has its own database which keeps the track of request status. Once the files are downloaded the data will be forwarded to another queue. Also, a status message will be sent to the Session management service via queue.

Data Modelling Service

The Data Modelling Service accepts nexrad data. Runs the models and generates the data that could be analyzed. Technically this service is a RabbitMq consumer. It consumes the message from the queue processes it and then forwards it to another queue. The service has its own database which keeps the track of request status. Once the files are downloaded the data will be forwarded to another queue. Also, a status message will be sent to the Session management service via a queue.

Data Analysis.

The Data Analysis Service accepts data and perform final analysis on the data and generates the data that could be plotted on the graph. Technically this service is a RabbitMq consumer. It consumes the message from the queue processes it and then forwards it to another queue. The service has its own database which keeps the track of request status. Once the files are downloaded the data will be forwarded to another queue. Also, a status message will be sent to the Session management service via a queue.

Session Management Service.

This service basically keeps the track of the entire session and all the services provide updates to Session Management Service about their progress. When the user asks for data it will be actually sent from Session Management service via API Gateway.

Project Milestiones

Project Milestone 1

Clone this wiki locally