Skip to content

Milestone 1

Kasturi Nikharge edited this page Aug 13, 2020 · 1 revision

Technical Documentation on Initial Setup and working

Our Technology Stack

  • Front End: ReactJS
  • Microservices: Python, Java/SpringBoot, NodeJS
  • Database: MongoDB

Architecture

Architecture

Bugs

Weak User Athentication No private Routes

Functionality Proposed:

  • Register New User
  • Login
  • DashBoard (HomePage)
  • SignOut
  • Storing Activity details As Session
  • Fetching Reflectivity Diagram for Input Date And Radar.

User Stories:

  • User must be able to log in and Register into the application.
  • User must be able to view different graphs/images based on his selections.

Setup

IMPORTANT

Before you can start with the steps below clone the repository.


Running the Front-End (React JS)

  1. cd /Front_End_React
  2. Open Terminal for Front-End
  3. Install dependencies npm install
  4. Run the Front-end: npm start

Front End Navigation Tutorial


Gateway Micro-service with Spring Boot/Java

  1. Import As "Existing Maven Project" into the IDE. (Recommended IDE -Eclipse, STS )
  2. Update the Maven project.
  3. Go to pom.xml > right-click > run > maven Build> Enter Goals: clean install > run
  4. Once Build is Successful go to "GatewayApplication.java" > right-click > Run > Run as Spring Boot Application.

User Management Micro-service with Spring Boot/ Java

  1. Import As "Existing Maven Project" into the IDE.(Recommended IDE -Eclipse, STS )
  2. Update the Maven project.
  3. Go to pom.xml > right-click > run > maven Build> Enter Goals: clean install > run
  4. Once Build is Successful go to "UserManagementApplication.java" > right-click > Run > Run as Spring Boot Application.
  5. Setting up the Database for User Management.>

Database setup for User Management Micro-service

  1. Install MongoDB https://docs.mongodb.com/manual/administration/install-community/
  2. Run below commands
> mongo 
> use weather_prediction
> db.createCollection("User")

Setup RabbitMq

  1. Follow https://computingforgeeks.com/how-to-install-latest-rabbitmq-server-on-ubuntu-18-04-lts/ for Linux setup

Session Management Micro-service in NodeJS

(Recommended IDE - VS code )

  1. Prerequisites: Install Node.js Refer to https://nodejs.org/en/ to install nodejs
  2. Clone repository with git clone
  3. Open Terminal for Session Management
  4. Install node-modules: npm install
  5. To run the micro-service: npm start

Python libraries

  1. numpy
  2. boto
  3. pika
  4. pyart Reference: https://github.com/ARM-DOE/pyart/wiki/Simple-Install-of-Py-ART-using-Anaconda
pip install nexradaws
pip install boto
pip install pika 


Run Data Retrieval, Run Model Execution, Run Post Analysis

  • cd Data_Retrieval

  • python DataRetrieval.py

  • cd Model_Execution

  • python ModelExecution.py

  • cd Post_Analysis

  • python PostAnalysis.py


AWS Account to access Nexrad Data.

  1. Create an AWS account if you do not have one, it is free. https://aws.amazon.com/
  2. Follow the instructions Step 1. to generate your own AWS_ACCESS_KEY_ID and AWSSecretKey. Copy paste the values of these in PostAnalysis.py file
  3. Under Amazon S3 create a new bucket with access public. Name the bucket ads-plots Refer : https://havecamerawilltravel.com/photographer/how-allow-public-access-amazon-bucket/

The Reflexivity form in the Dashboard is synchronized to fetch different radar options. Simply add a four digit code out of any of these:

  • KAMX
  • KAPX
  • KARX
  • KATX
  • KBBX
  • KBGM
  • KBHX
  • KBIS
  • KBLX
  • KBMX
  • KBOX
  • KBRO

Make sure your date is of any day except today's date !


References

https://nexradaws.readthedocs.io/en/latest/Tutorial.html

https://www.ncdc.noaa.gov/data-access/radar-data/nexrad

You are all set to go !!

Issues? Get in touch!