Skip to content
Umangmsharma edited this page Feb 8, 2022 · 35 revisions

Welcome to the DSDummies wiki!

For this weather application we are using the following technology stack:

  1. ReactJS (Frontend)
  2. NodeJS (Backend - AuthService)
  3. Java Springboot (Backend - CacheService)
  4. Python (Backend - Data Ingestor)
  5. MongoDB (Database)

Data Flow Diagram :

System Architecture

Napkin Diagram:

Napkin Diagram

User Napkin Diagram:

User-Napkin_Diagram

Steps to install :

Locally

  • Take the clone for https://github.com/airavata-courses/DSDummies.git

  • cd DSDummies/Client RUN (make sure using NVM 16)

    1. npm install
    2. npm start This shall install the ReactJS app and will be running on localhost://3000
  • Secondly, we shall start the authentication service

    • RUN (make sure using NVM 16) 1. npm install 2. npm start

This microservice is responsible for authenticating the user. For building this microservice we used expressJS from NodeJS and MongoDB as our database.

  • Thirdly, we need to run the Flask -app :
    • cd Data\Ingestor/

    • conda env create -f environment.yml (setting up virtual env)

    • conda activate nexrad-env (activating env)

    • pip install -r requirements.txt

    • conda run -n nexrad-env --no-capture-output python3 main.py (starting flask server)

    • The app will run on : http://127.0.0.1:5678

    • Run this URL to test : http://127.0.0.1:5678/isworking

Docker

  • cd Client

    • make build
  • cd ../Auth

    • make build
  • cd ../cache

    • make build
  • cd ../Data\Ingestor/

    • make build
  • cd ..

  • make run-dev

  1. This shall spawn all the containers and then you would be able to open localhost://3000
  2. This shall open up a login page, if you're a first time user , then click on register.
  3. Once you register, go to login and put in your credentials.
  4. It shall open a US map with drop down boxes for data and time as well as specifying video option.
  5. Put in the radar station name, date and time, choose if you want to select a video or not, then click on getplot.
  6. This will fetch you the result from the aws and show a plotted graph of the received data.

Note : Step 6 doesn't works yet on Docker, but the complete functionality works end to end perfectly on local, we're in the process of fixing it, but until that time, for grading , please refer to the local setup.

Clone this wiki locally