Structures and Asbestos Management App


I designed and built the SAM app to center on a list of all structures in Virginia and their currently known status of asbestos containing materials (ACM).
Users can search for bridges via a number of filters and quickly see relevant details. Selecting a structure displays further editable information in a set of CRUD forms. Further information is stored as “events.” Each structure has a one-to-many nested table relationship with events that allow multiple results, details, and documents to be stored for each record.
By-the-way there’s a story behind this one. Sometimes in the government, initiatives that are no-brainers get shoved under the rug. VDOT’s structure and bridge division had a regulatory need to keep track of asbestos in bridges. Yet, they continually trimmed it from their enterprise software requirements. Over the intervening decades, one rogue consultant armed with an access database made a listing of bridges and testing results for asbestos containing materials. While it started in one district, it  eventually covered the entire state.  After another project dropped its from their requirments, I was tasked with setting up requirements to add it into CEDAR for environmental HAZMAT. In the requirements process we determined we would need to get off the old access database based app ASAP, as it was no longer supported and crashed regularly. While waiting for the lengthy state funding and development process, I’ve created this as an intermediary stable system.  
The underlying data was extracted from a two seperate databases using custom coded python scripting. Lots of cleaning had to be employed to create standardized, validated, useable data.
In addtion, I wrote a web scraper to pull out old inventory attachments from a legacy system and then automatically associated them to the corresponding event.

*power apps, power automate, ms lists, and python used to create the app and underlying data structure

The CEDAR Log


Version 2.0 of the CEDAR Log is an app I created to help keep track of all the ongoing enhancement and bug tickets submitted by the Environmental Data Management team. It automatically prioritizes submissions based on their attributes and has useful links to related documents and IT ticket systems.

The original version was custom coded entirely using javascript! Eventually VDOT IT moved away from the hosting development environment, and I was forced to pivot to power apps instead.

*power apps, power automate, and sharepoint  used to create the app and underlying data structure

Automated Wetland Determination Form


I built an app using survey123 that allows field staff to determine the presence/absence of a wetland according US Army Corps of Engineers guidelines. Survey123 is nice because it allows for fast updates and circumvents the app store process.

The form has three main sections: hydrology, vegetation, and soils.

The form contains a list of all USACE listed species! Unlisted species can be added too.
I wrote custom javascript functions that are called asynchronously to evaluate user input in the form. For example, when a new species is added to the vegetation form it automatically determines its indicator status and calculates its dominance in the stratum against all previous entries and in turn updates their dominance accordingly. Statistical tests were also included and coded to automatically calculate if the presence of hydric vegetation is enough to determine wetland status.

The soil section incorporates a unique algorithm I wrote that calculates munsell soil color chart color contrast between the reduced and matrix soil components - AKA DIRT COLOR MATH ︎

Finally when a user submits the form it makes its way into power automate where it populates a report template, stores the document, and emails the completed data form, photosheet, and results tables.

Similar to the situation with the CEDAR log, I had originally coded a reporting service using custom javascript, webhooks and webserver, but was forced to pivot to power automate when the hosting environment license was dropped by our IT division. It helped to have a staff member assist with setting that up!

*survey123, javascript, xlsforms, arcgis online, power automate used to create and manage the app and reports