-
Notifications
You must be signed in to change notification settings - Fork 3
Homework 1
Dexlab is a tool that helps researchers study reflectivity patterns for a given date. Researchers can interact with the tool with a web app. The researcher has to input a date and a radar ID (from the available radars on the day). The researcher sees a plot of reflectivity patterns if everything goes right.
Dexlab is composed of three microservices, viz., gateway, ingestor, ORM. It uses MYSQL for storing data and MYSQL is run in a separate container. Each microservice is responsible for specific functionalities.
This is a Node.js app that serves the static content for the webapp and relays requests to other microservices.
This is a Flask app that interacts with NEXRAD's AWS S3 bucket. It provides data about radar availability and generates reflectivity plots for the given day.
This is a Spring boot application that is responsible for interacting with the database. This is the only service that interacts with Database.
The services can be started by docker-compose
. This is the recommended way to start the services:
Start the services:
$ docker-compose up
Documentation about the respective services can be found in their respective branches.
OpenAPI compliant API docs are served on the following URL.
Gateway: http://localhost:3001/apidocs
ORM: http://localhost:8000/swagger-ui.html
Ingestor: http://localhost:5000/apidocs
Automated builds have been configured for each service using Github Actions.
Ingestor: https://github.com/airavata-courses/dexlab/tree/release_ingestor
Gateway: https://github.com/airavata-courses/dexlab/tree/release_gateway_services
ORM: https://github.com/airavata-courses/dexlab/tree/release_ORM