Species Selector Release Notes
08-23-24
Front End Changes
PSAModal component
Database Updates
Updated Images for all councils NECCC, SCCC, MCCC in database.
API Updates
Updated Images API in selector to accept councils for Image retrieval.
08-09-24
Front End Changes
Added Pirsch analytics update
08-08-24
Front End Changes
seeding filter needs to be Boolean
Sticky table headers
V2 of design updates
updated calendar view to have search box full width
readjusted location page text and map
added a grey background to selected crops on cal and list views.
Added release notes button to header
fix pdf links
Consistent button styling
Added Pirsch analytics
Back End Changes
Implemented
AttributionMiddleware.js
for license retrieval based on region IDs.Updated
Response.js
,Resource.js
,Collection.js
, andPaginatedCollection.js
to include attributions in API responses.Modified all API calls in v1.js and v2.js to invoke AttributionMiddleware.
Pushed Attributions.json to the
imagesselector
container in Azure Blob Storage.Configured the middleware to use .env file data for accessing blob containers and attribution strings.
07-12-24
Front end changes
Fix CI/CD pipeline error
Update landing page styling to use more real estate on smaller screens
Fetch soil drainages from API
Fix Aerial and Frost Seeding filtering
Back end changes
Created Migration file to create regions_values table
Created Model Class for RegionsValue
added table associations in ModelsProvider.js
Created Controller Class RegionsValuesController
Created controller function RegionsValuesController.list
Created Request Class RegionsValues/ListRegionsValuesRequest
Created Resource Class RegionsValues/ListRegionsValuesResource
added transform function logic to properly format the response data to be an array of AttributeValue objects
Created endpoint
GET /v1/attribute-values?regions={regionId}®ions={regionId2}&slug={slug}
which returns an Array of AttributeValue objects.
Database changes
Insert rows into the regions_values table for mapping region IDs to attribute value IDs with slug ‘soil_drainage’ for NECCC
Insert rows into the regions_values table for mapping region IDs to attribute value IDs with slug ‘soil_drainage’ for SCCC
Insert rows into the regions_values table for mapping region IDs to attribute value IDs with slug ‘soil_drainage’ for MCCC (Not Canada except Missouri)
Insert rows into the regions_values table for mapping region IDs to attribute value IDs with slug ‘soil_drainage’ for MCCC (Canada)
Insert rows into the regions_values table for mapping region IDs to attribute value IDs with slug ‘soil_drainage’ for MCCC (Only Missouri)
Soft deleted either
Yes
orNo
Values forAerial Seed
for crops displaying both values in the website.
06-28-24
Front end changes
Update boolean values to yes or no
Lots of styling updates based on Game Theory design review
Fixed several soil drainage bugs
Updated user history to store all user input
Changed some confusing labels and text
Add selected goal sorting for obvious order
Back end changes
Add flooding frequency tolerance to minified crops endpoint
Add description property to attribute objects
Changed values array from strings to objects with
value
and `label
Database changes
Replace winter survival with winter kill temperature
Moved units into a property in the api response instead of having it built into the string
Changed some casing errors
Merged
Nitrogen Accumulation Min
andNitrogen Accumulation Max
into a merged value calledNitrogen Accumulation
in the form of{min} - {max}
05-03-24
Front end
Store auth0 token in a file instead of redux
Fix a build error related to the bit maps
Fix crops being filtered out of the crop list
Fix buggy page title change
Fix average goal rating not displaying in the cover crop list
04-12-24
Front End
Add CC-BY-ND 4.0 image license text
Update login colors to have higher contrast and be easier to read
Use new plant hardiness zone API
Use council shorthand to update sidebar legend
Fix undefined units on comparison view
Add units to info sheet
Remove average frost from legend for SCCC
Remove multiple from legend now that it's no longer possible to have multiple for SCCC
Updated about the experts with
Added Development team
Added links for each council
Edited the info on each page to be more streamlined
Fix zone not pre populating for 8a and 8b
Fixed image attribution to be Source: ,
Rename data dictionary Terminology Definitions
Rename PLANT HARDINESS ZONE DATASET to Cover Crop Information Sheet
API
Adds lookup keys property called
slug
to attribute objectsAdds
slug
andfiltered
parameter to GET/v2/attribute
endpointfiltered
= false : all values associated with the attribute will be included in the responsefiltered
= [true || null], only values that are associated with crops will be included in the response
Adds regional goals list lookup map
Adds Cache object getter function to retrieve goals set based on array of region ids.
Adds setter function to crops list minified resource to artificially fill in missing goals with null values array.
Adds dataType property to attribute objects in crops minified list view
Adds units information to attribute objects in the keyTraits array for crops in the minimal list view.
Adds Health check endpoint: GET
{{selector_service_url}}/v1/health-check
GET
{{selector_service_url}}/v1/states/{{state_id}}/crops/{{crop_id}}?regions={{regions_id_set}}
now includes apdf
property providing url for the info-sheet pdf.GET
{{selector_service_url}}/v2/attribute
now sorts thevalues
by thevalue
property inASC
order.GET
{{selector_service_url}}/v2/crops
now includessoilDrainage
property for each crop ( if available )Resource model had
region_id
property changes toregions
which is an array of region ids.Adds
resourceTypeId
property to Resource model, providing a belongsTo relationship to ResourceType model.Created ResourceType model which is an enumeration table for the Resource model.
Adds
SYSTEM
log level, which is the highest log level, allowing it to push log statements regardless of what the .env log level is set to.Convert Bootstrapping log statements to
SYSTEM
log levelChanges
console
logging indev
&prod
environments toslack
to remove server storage bloat created from logging files.Adds Health check endpoint: GET
{{selector_service_url}}/v1/health-check
GET
{{selector_service_url}}/v1/states/{{state_id}}/crops/{{crop_id}}?regions={{regions_id_set}}
now includes apdf
property providing url for the info-sheet pdf.GET
{{selector_service_url}}/v2/attribute
now sorts thevalues
by thevalue
property inASC
order.GET
{{selector_service_url}}/v2/crops
now includessoilDrainage
property for each crop ( if available )Resource model had
region_id
property changes toregions
which is an array of region ids.Adds
resourceTypeId
property to Resource model, providing a belongsTo relationship to ResourceType model.Created ResourceType model which is an enumeration table for the Resource model.
Adds
SYSTEM
log level, which is the highest log level, allowing it to push log statements regardless of what the .env log level is set to.Convert Bootstrapping log statements to
SYSTEM
log levelChanges
console
logging indev
&prod
environments toslack
to remove server storage bloat created from logging files.Adds units information to attribute objects in the keyTraits array for crops in the minimal list view.
Adds regional goals list lookup map
Adds Cache object getter function to retrieve goals set based on array of region ids.
Adds setter function to crops list minified resource to artificially fill in missing goals with null values array.
Adds dataType property to attribute objects in crops minified list view
Adds lookup keys property called
slug
to attribute objectsAdds
slug
andfiltered
parameter to GET/v2/attribute
endpointfiltered
= false : all values associated with the attribute will be included in the responsefiltered
= [true || null], only values that are associated with crops will be included in the response
Adds group prop in minimal crops list endpoint {{selector_service_url}}/v1/states/8/crops?minimal=true
Adds Groups Options endpoint:
GET {{selector_service_url}}/v1/states/{{state_id}}/groups
Changed routes/v1.js to handle the request and response for the endpoint
Adds regions integer[] in the Group.js model.
Adds GroupsController.js which resolves parents ids of stateId from Cache and uses sequelize to obtain data from the database.
Adds ListGroupsRequest.js which defines stateId as a parameter.
Adds ListGroupsResource.js which return Group schema object.
Create a migration file
add-regions-column-to-groups-table
to add regions column to groups table which is of datatype integer[]Adds units property to crop.attribute objects
Database
slug
column added toattributes
tableattribute records with id (840, 28, 931) : slug updated to
flooding_frequency
resources table had the column
region_id
which was a INT datatype changed toregions
which is now an ARRAY[INT]resource_types table created as an enumeration table for resources table.
resources table has new column
resource_type_id
which has a foriegn key constrait to resource_types.Flood
attribute for NECCC now hasNone
Value.Flood Tolerance
attribute for SCCC now hasNone
Value.resources table had the column
region_id
which was a INT datatype changed toregions
which is now an ARRAY[INT]resource_types table created as an enumeration table for resources table.
resources table has new column
resource_type_id
which has a foriegn key constrait to resource_types.Flood
attribute for NECCC now hasNone
Value.Flood Tolerance
attribute for SCCC now hasNone
Value.slug
column added toattributes
tableattribute records with id (840, 28, 931) : slug updated to
flooding_frequency
Adds
regions
column to thegroups
table with datatypeinteger[]
Adds
regions
data to thegroups
table by joining the tablescrop_service_regions
andcrops
02-29-24 Leap Day!
Make styling of site conditions page larger and changed the color from gray to black
Make crops more obviously clickable in the calendar and list views
Display multiple values properly on the information sheet
Fix descriptions in info sheet
Fix crop window on firefox
02-23-24
Front end
Remove bootstrap implementation and unnecessary styling files for information sheet references.
Updated tiling option in soil drainage to show what is selected when tiling is active and show a statement for what the new drainage is while maintaining the calculations.
Remove extra whitespace from selected crop list.
Updated site conditions caption.
Updated the help section into multiple components and to make help available only after state selection.
Updated calendar from a half month basis to one day basis.
Updated calculation logic to fit in minified crops.
Changed styling for cash crops.
Minor styling improvements
Updated flooding frequency to filter crops and pull options from API.
Filtered the crops down based on flooding frequency entered by the user.
Mapped over attributes with multiple values in the information sheet.
Fixed a bug not allowing users to progress through Ontario.
Fixed a bug with region not being updated via the map.
Fixed broken tooltips on question marks in the sidebar.
API
Added Health check endpoint: GET
{{selector_service_url}}/v1/health-check
GET
{{selector_service_url}}/v1/states/{{state_id}}/crops/{{crop_id}}?regions={{regions_id_set}}
now includes apdf
property providing url for the info-sheet pdf.GET
{{selector_service_url}}/v2/attribute
now sorts thevalues
by thevalue
property inASC
order.GET
{{selector_service_url}}/v2/crops
now includessoilDrainage
property for each crop ( if available )Resource model had
region_id
property changes toregions
which is an array of region ids.added
resourceTypeId
property to Resource model, providing a belongsTo relationship to ResourceType model.Created ResourceType model which is an enumeration table for the Resource model.
Added
SYSTEM
log level, which is the highest log level, allowing it to push log statements regardless of what the .env log level is set to.Convert Bootstrapping log statements to
SYSTEM
log levelChanged
console
logging indev
&prod
environments toslack
to remove server storage bloat created from logging files.Added units information to attribute objects in the keyTraits array for crops in the minimal list view.
Adds regional goals list lookup map
Adds Cache object getter function to retrieve goals set based on array of region ids.
Adds setter function to crops list minified resource to artificially fill in missing goals with null values array.
Adds dataType property to attribute objects in crops minified list view
Adds lookup keys property called
slug
to attribute objectsAdded
slug
andfiltered
parameter to GET/v2/attribute
endpointfiltered
= false : all values associated with the attribute will be included in the responsefiltered
= [true || null], only values that are associated with crops will be included in the response
Database
resources table had the column
region_id
which was a INT datatype changed toregions
which is now an ARRAY[INT]resource_types table created as an enumeration table for resources table.
resources table has new column
resource_type_id
which has a foriegn key constrait to resource_types.Flood
attribute for NECCC now hasNone
Value.Flood Tolerance
attribute for SCCC now hasNone
Value.slug
column added toattributes
tableattribute records with id (840, 28, 931) : slug updated to
flooding_frequency
01-01-24
Front end
Center the main section (between header and footer).
If user select a different region on capitol address, delete the marker in redux so on site condition it does not use capitol to populate data. This fixes a bug where the capitol is used to fetch data for weather and soil data.
Back end
fixes collision causing any attribute where
isGoal || isFilter == true
andisKeyTrait == true
to not be added tokeyTraits
property in crop objects for minified list view.Adds
soilDrainage
property to all crops in the minified list view response data object.
12-12-23
Front End
Fix filtering for mccc
Change to using a boolean instead of math for setting crop.inactive
FIx loading screen for explorer
Remove unneeded logic for local variable in Filters
More error handling for returning
No Data
in data extractorLeft align cover crop names in the calendar view
Make cover crop name text black instead of light green
Deleted unneeded JSON file
Made drainage class unselectable
Fix default crop sorting
Simplify logic for reducing opacity in crops that aren't recommended, remove unneeded activeCropDataShadow variable, and delete CropDataRender.js
Rename selectedCrops to selectedCropIds
Rename activeCrops to activeCropIds
Allow the user to proceed with no goals selected
Add all goals to the calendar view instead of average goal rating
Fix background of hessian fly free date
Remove unneeded props from CropCalendarView.js and CropTable.js
Rename CropTableListItem.js to RenderTableItems.js
Rename pullCropData to updateCropData to match redux naming convention
Simplify cropDataFormatter logic
Updated info sheet to display the label if one exists
Remove region data in user history.
Solve a bug that select field would not get updated after click next and click back to return.
Rename LocationComponent to Location.
Reduce login modal padding on mobile
Remove hessian fly free date from legend in NECCC
Remove unneeded sfliters logic
Combine soil and weather steps in the recommendation flow
Fix crops being filtered by drainage class by default
Replace next with
View My List
in the last step of the recommendation flowRemove weather editing
Rename
Cover Crop Council
toCover Crops Council
Fix a bug with logos not changing
Back End
Fixed Hard Coded PlantingDateCategoryIds & GoalsCategoryIds to now be loaded from CacheProvider in the Crops List View Controller Function
Fixed AttributesController List Options Function to ensure that only options for the provided region show up.
Added Goals Property to Crop objects in minified list view
Added conditional logic to flatten / remove categories from info sheet crop objects. ( 0 to flatten into object, -1 to append )
10-27-23
Front End
Replaced more bootstrap with MUI
Added error handling for when plant hardiness zone API returns no data
Reworked the calendar and list views to be more mobile friendly
Removed lots of all uppercase text
Updated some language
Centered the soil conditions text
Added helper text in several places
Made chip styling consistent
Moved previous cash crop from the sidebar to the goals tab
Allowed user to proceed without selecting any goals
Reduce opacity for greyed out crops
Added frost seeding possible icon for MCCC
Fixed location not displaying in info bar
Added error handling for Ontario
Add text explaining region selector map is interactive
Made goals have a max width
Centered region selector map on available states
Made goal styling the same as the other chips
Fixed hessian fly free date scaling issues
Added more spacing to sidebar filters
Added spacing between sidebar and crops in the browse crops tab
Made the PSA logo the default apple logo
Fixed annual precipitation and monthly precipitation being the same
Created a new rating icon
Removed unused scss
10-18-23
Front End
Made site more mobile friendly
Rename 'Cover Crop Explorer' to 'Browse Cover Crops'
Rename 'Species Selector' to 'Get a Recommendation'
Remove excess disclaimers
Remove lots of text to streamline user flow
Simplify language in many places
Removed previous cash crop name input
Renamed Previous 'Previous Cash Crop Growth Window' to 'Cash Crop Growing Window'
Removed cash crop growing window toggle for calendar view
Changed 'Cove Crop Properties' to 'Cover Crop Filters'
Made 0-5 scale collapsible with filters
Removed 'Add a Crop' option from the cover crop list
Removed lots of question marks in titles
Added search icon to the cover crop search
Added next and back buttons to the bottom
Restructured the entire header to save on white space
Made the sidebar go to the top on mobile
Made all the pages responsive
Removed approximately 5000 lines of scss styling and moved it into individual components using MUI
Removed 95% or so of the bootstrap styling from the application
reworked cover crop list to be a table
10-13-2023
Front end
refactor selected crops and active crops to be a list of ids instead of a list of objects. this will make the application faster
added hessian fly free dates for Midwest
fix bug for filters not showing all available options (ex. 2-3 instead of 1-5)
Back end
Source code
AttributeValue
model now has thelabel
propertylabel
property will be included in all AttributeValue objects in Effected endpoints/crops/{id} ( info sheet )
info sheet crop objects will now include
family
property which will always be a validfamily
object.info sheet crop objects will now include
group
property which will always be a validgroup
object.attributes in the info sheet crop objects
data
array will now includedataType
property which will always be a validdataType
object.Attribute objects in all response objects will now include a new property called
unitRange
The
unitRange
property will either be null, or an object withmin
andmax
properties.The
min
andmax
properties will always be integers.
Database
attribute_values
table now includeslabel
columnlabel
column supports null valueslabels
have been added to relevant recordsGrowing Window ( SCCC )
Database now includes a new table called
unit_ranges
unit_range_id
column has been added toattributes
tableunit_ranges
has aone to many
relationship withattributes
whereattributes
belong tounit_ranges
andunit_ranges
has manyattributes
crop_data
view (virtual table) now includes theunit_range_id
association
10-01-2023
Front end
update selected crops to be an array of ids instead of an array of objects
added user history for state, region, and consent
fix tiling logic
add tiling for MCCC
add comments to the bottom of each category in the information sheet
refactored weather modal
refactored file structure to be more logical
Back end
SCCC data pull