Proposed Activities

As CWMS 3.4 has incorporated the use of CWMS Data API (CDA) into the standard workflow within the CAVI, the focus of the team's efforts in FY25 will be improving the user experience. The CDA team will assist users with migration of operations to CDA as the primary data source and will respond to usability issues as they arise.

ActivityFunded (Y/N)CostDelivery Date
Test Work Completed on FY24 ContractsY$75,000 (HEC labor)

 

Technology Transfer - Webinars & Working SessionsY

$20,000 (HEC labor)

$40,000 (Field labor)

Technology Transfer - Documentation UpdatesY

$15,000 (HEC labor)

$30,000 (Field labor)

 

Data Improvements - Add Data/Features as IdentifiedY

$50,000 (HEC/Field labor)

$200,000 (contract)

 

Maintenance ContractY

$20,000 (HEC labor)

$80,000 (contract)

 

 

Monitor and Improve PerformanceY

$15,000 (HEC labor)

$15,000 (Field labor)

 

API Improvements - Coordination with CRRELY

$20,000 (HEC labor)

 

API Improvements - Develop Python 3 LibrariesY

$80,000 (HEC labor)

$40,000 (Field labor)

 

JavaScript APIY

$5,000 (HEC labor)

$20,000 (Field labor)

 

Test Work Completed on FY24 Contracts

The team will periodically test the work completed by contractors as the work is submitted. Work is tested during development through automated tests. To verify these results, the team will perform additional manual and exploratory testing before releases. It is important to provide feedback to the developer as soon as possible during this process. It is also required as part of the contracting process to validate the terms of the contract were met. Additionally, the team will respond to user feedback when additional requests for CDA improvements are submitted.

Webinars and Working Sessions

Technology transfer, in the form of working sessions and webinars, will be funded. This is important, as the enhancements and changes made to CDA need to be communicated to the field so that users can take advantage of the new features. As districts are being required to use CDA for database access, training will help the field adopt the new system sooner.

Documentation Updates

Technology transfer, in the form of documentation updates, will be funded. This is important, as the enhancements and changes made to CDA need to be communicated to the field so that users can take advantage of the new features. The team will create interactive documentation that allows users to interact with CDA and see results as they are working through documentation and tutorials. This will reinforce learning and should accelerate adoption.

Add Data/Features as Identified

The team will be adding data to CDA throughout the year. All access to the national CWMS database needs to be through CDA; however, the team cannot reasonably foresee all possible needs. As districts begin using the API and identify any shortcomings, the CDA development team will respond to those requirements.

Maintenance Contract

CDA is a complex component that interacts with the database and users in multiple ways. While it would be good to keep all work in-house, constraints external to CDA often limit government developers. Having a maintenance contract allows the team to maintain continuity of improvements as well as keep vendor skills relevant when larger projects are needed.

Monitor and Improve Performance

Since all CWMS data (except gridded data accessible through Cumulus) will be in a single database, performance is a critical consideration. CDA is currently using standard tools to develop metrics, and the team will be setting up monitoring services and dashboards for CDA and other applications to monitor for hot spots and develop a better sense of where to focus future efforts.

API Improvements - Coordination with CRREL

API improvements will be a large focus as well since API design is difficult and ever evolving. CRREL has provided useful suggestions, and the team will decide how to implement them over time without breaking existing usage.

API Improvements - Develop Python 3 Libraries

This task includes continued development of the cwms-python library, which is a wrapper around CDA for interacting with the CWMS database in Python 3. As improvements and additions are made to CDA, those changes will be migrated into cwms-python. Additions will be made to improve usability and performance as district staff identify needs.

JavaScript API

Since district web applications will be using CDA for access to data in the national CWMS database, the team will create a unified JavaScript API that can be used directly or through https://github.com/usace/groundwork to simplify development. Without a simple API, each application would have to duplicate code to handle formatting requests, decoding responses, and setting up authentication mechanisms.