GithubHelp home page GithubHelp logo

cumulus's Introduction

usace

US Army Corps of Engineers

cumulus's People

Contributors

adamscarberry avatar brettpalmberg avatar fhanbali avatar jeffsuperglide avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cumulus's Issues

CI/CD: Separate Github Actions

All github actions jobs may not be required, depending upon which file in the repository changes. Separate github actions so only necessary build and deploy steps are triggered. For example, do not rebuild packager container if only a file in the REST API was changed.

Add Support for MyWatersheds

Add new API endpoints for addition/modification/deletion of user's watersheds (or watershed favorites). Adjust UI to connect to new endpoints.

Basic GET endpoints for `area_group` and `area`

  • Endpoint for listing area_group for a given watershed: /watershed/:watershed_id/area_groups
  • Endpoint for listing areas for a given area_group: /watershed/:watershed_id/area_groups/:area_group_id/areas

Add support for MyDownloads

Adjust database tables, add/modify API end points to support user's downloads for dashboard. Adjust UI to display new endpoint data.

Packager _SQS Environment Variables

Environment Variables for Overriding Usual AWS Credentials for SQS Configuration are:

AWS_ACCESS_KEY_ID_SQS
AWS_SECRET_ACCESS_KEY_SQS
AWS_REGION_SQS

If these variables are unset, set them to the default AWS environment variables for user credentials. Specifically:

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION

This will allow these values in development using docker-compose:

AWS_ACCESS_KEY_ID_SQS=x
AWS_SECRET_ACCESS_KEY_SQS=x
AWS_REGION_SQS=elasticmq

When deployed in AWS, the variables suffixed with _SQS will be unset and the configuration variables will be set to the AWS usual variables set in the environment (without the _SQS suffix).

Download Capability from Web UI

Allow users to create DSS Downloads from the web User Interface. Implement as a modal on /dashboard route, near recent downloads component.

Repository Refactor

  • move docker-compose.yml to repository root; associated path changes
  • move go API from folder "root" to "api". make it a separable module
  • make async_listener a go module
  • Remove go module files (go.mod) from repository root
  • Containerize api so it can be run in the same docker network as database, listener, etc. To date it has been run in the vscode debugger on the native os. This move allows other containers - specifically async_packager and async_statistics - to easily interact with the database via the http API using http://api:3030/.

Product File Seed Data

Additional productfile seed data is needed for local testing of downloads and user interface. Create local script to generate database inserts. Script will use the AWS api to fetch products and product files. An adjustable time window will be used in local script. Script will output the sql file into the database folder for auto consumption on db container start.

Basin Groups Support (Columbia River Basin, Major Tributary, Subbasin Concept)

๐Ÿšจ Planning in Progress

Tables:
basin (columbia river)
subbasin (all subbasins, all major trib)
subbasin_group ("subbasin", "major trib")
subbasin_group_subbasins (many-to-many)

Initial GET Endpoints
List Basin Groups for Given Basin
GET /cumulus/basins/columbia-river/subbasin_groups
- Payload: [
{id: uuid, name: 'Subbasins', slug: 'subbasins'},
{id: uuid, name: 'Major Trib', slug: 'major-trib'},
{id: uuid, name: 'Basin', slug: 'basin'}
]

Get Basin Group
GET /cumulus/basins/columbia-river/basin_groups/subbasins
- Payload: { id: 'uuid', name: 'Subbasin', slug: 'subbasin', basins: [{id: uuid, name: "", slug: ""}, {}, {}]}

Automate Functional API Tests With API Docker Container

Functional tests are written using postman. Automate a way to run the functional tests against the API running in the docker-compose stack locally. This puts the foundation in place to run the tests automated on code commit (to be completed as part of a separate issue).

Packager; SQS Payload Exceeding Limits

As the data time window increases or the number of products increases, the payload length sent to SQS also increases. Refactor messaging so a UUID for a download request is sent to the message queue. Then implement a single query of the API in the worker.

pydsstools; Origin (lower-left) always 0, 0

Investigating solution to DSS Grid creation with pydsstools always results in the grid origin (lower-left) is always at zero. Focusing on pydsstools C-bindings and gridInfo().

Fix Regression Tests

Fix outdated regression tests. Ensure the regression test suite runs from top to bottom. This will serve as the baseline test suite to be run before merge to develop branch. Tests should be expanded / improved as new capabilities and endpoints are added.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.