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, and PaginatedCollection.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}&regions={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 or No Values for Aerial 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 and Nitrogen Accumulation Max into a merged value called Nitrogen Accumulation in the form of {min} - {max}

05-03-24

  1. Front end

    1. Store auth0 token in a file instead of redux

    2. Fix a build error related to the bit maps

    3. Fix crops being filtered out of the crop list

    4. Fix buggy page title change

    5. Fix average goal rating not displaying in the cover crop list

04-12-24

  1. Front End

    1. Add CC-BY-ND 4.0 image license text

    2. Update login colors to have higher contrast and be easier to read

    3. Use new plant hardiness zone API

    4. Use council shorthand to update sidebar legend

    5. Fix undefined units on comparison view

    6. Add units to info sheet

    7. Remove average frost from legend for SCCC

    8. Remove multiple from legend now that it's no longer possible to have multiple for SCCC

    9. Updated about the experts with

    10. Added Development team

    11. Added links for each council

    12. Edited the info on each page to be more streamlined

    13. Fix zone not pre populating for 8a and 8b

    14. Fixed image attribution to be Source: ,

    15. Rename data dictionary Terminology Definitions

    16. Rename PLANT HARDINESS ZONE DATASET to Cover Crop Information Sheet

  2. API

    1. Adds lookup keys property called slug to attribute objects

    2. Adds slug and filtered parameter to GET /v2/attribute endpoint

      • filtered = false : all values associated with the attribute will be included in the response

      • filtered = [true || null], only values that are associated with crops will be included in the response

    3. Adds regional goals list lookup map

    4. Adds Cache object getter function to retrieve goals set based on array of region ids.

    5. Adds setter function to crops list minified resource to artificially fill in missing goals with null values array.

    6. Adds dataType property to attribute objects in crops minified list view

    7. Adds units information to attribute objects in the keyTraits array for crops in the minimal list view.

    8. Adds Health check endpoint: GET {{selector_service_url}}/v1/health-check

    9. GET {{selector_service_url}}/v1/states/{{state_id}}/crops/{{crop_id}}?regions={{regions_id_set}} now includes a pdf property providing url for the info-sheet pdf.

    10. GET {{selector_service_url}}/v2/attribute now sorts the values by the value property in ASC order.

    11. GET {{selector_service_url}}/v2/crops now includes soilDrainage property for each crop ( if available )

    12. Resource model had region_id property changes to regions which is an array of region ids.

    13. Adds resourceTypeId property to Resource model, providing a belongsTo relationship to ResourceType model.

    14. Created ResourceType model which is an enumeration table for the Resource model.

    15. 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.

    16. Convert Bootstrapping log statements to SYSTEM log level

    17. Changes console logging in dev & prod environments to slack to remove server storage bloat created from logging files.

    18. Adds Health check endpoint: GET {{selector_service_url}}/v1/health-check

    19. GET {{selector_service_url}}/v1/states/{{state_id}}/crops/{{crop_id}}?regions={{regions_id_set}} now includes a pdf property providing url for the info-sheet pdf.

    20. GET {{selector_service_url}}/v2/attribute now sorts the values by the value property in ASC order.

    21. GET {{selector_service_url}}/v2/crops now includes soilDrainage property for each crop ( if available )

    22. Resource model had region_id property changes to regions which is an array of region ids.

    23. Adds resourceTypeId property to Resource model, providing a belongsTo relationship to ResourceType model.

    24. Created ResourceType model which is an enumeration table for the Resource model.

    25. 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.

    26. Convert Bootstrapping log statements to SYSTEM log level

    27. Changes console logging in dev & prod environments to slack to remove server storage bloat created from logging files.

    28. Adds units information to attribute objects in the keyTraits array for crops in the minimal list view.

    29. Adds regional goals list lookup map

    30. Adds Cache object getter function to retrieve goals set based on array of region ids.

    31. Adds setter function to crops list minified resource to artificially fill in missing goals with null values array.

    32. Adds dataType property to attribute objects in crops minified list view

    33. Adds lookup keys property called slug to attribute objects

    34. Adds slug and filtered parameter to GET /v2/attribute endpoint

      • filtered = false : all values associated with the attribute will be included in the response

      • filtered = [true || null], only values that are associated with crops will be included in the response

    35. Adds group prop in minimal crops list endpoint {{selector_service_url}}/v1/states/8/crops?minimal=true

    36. Adds Groups Options endpoint: GET {{selector_service_url}}/v1/states/{{state_id}}/groups

    37. Changed routes/v1.js to handle the request and response for the endpoint

    38. Adds regions integer[] in the Group.js model.

    39. Adds GroupsController.js which resolves parents ids of stateId from Cache and uses sequelize to obtain data from the database.

    40. Adds ListGroupsRequest.js which defines stateId as a parameter.

    41. Adds ListGroupsResource.js which return Group schema object.

    42. Create a migration file add-regions-column-to-groups-table to add regions column to groups table which is of datatype integer[]

    43. Adds units property to crop.attribute objects

  3. Database

    1. slug column added to attributes table

    2. attribute records with id (840, 28, 931) : slug updated to flooding_frequency

    3. resources table had the column region_id which was a INT datatype changed to regions which is now an ARRAY[INT]

    4. resource_types table created as an enumeration table for resources table.

    5. resources table has new column resource_type_id which has a foriegn key constrait to resource_types.

    6. Flood attribute for NECCC now has None Value.

    7. Flood Tolerance attribute for SCCC now has None Value.

    8. resources table had the column region_id which was a INT datatype changed to regions which is now an ARRAY[INT]

    9. resource_types table created as an enumeration table for resources table.

    10. resources table has new column resource_type_id which has a foriegn key constrait to resource_types.

    11. Flood attribute for NECCC now has None Value.

    12. Flood Tolerance attribute for SCCC now has None Value.

    13. slug column added to attributes table

    14. attribute records with id (840, 28, 931) : slug updated to flooding_frequency

    15. Adds regions column to the groups table with datatype integer[]

    16. Adds regions data to the groups table by joining the tables crop_service_regions and crops

02-29-24 Leap Day!

  1. Make styling of site conditions page larger and changed the color from gray to black

  2. Make crops more obviously clickable in the calendar and list views

  3. Display multiple values properly on the information sheet

  4. Fix descriptions in info sheet

  5. Fix crop window on firefox

02-23-24

  1. Front end

    1. Remove bootstrap implementation and unnecessary styling files for information sheet references.

    2. 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.

    3. Remove extra whitespace from selected crop list.

    4. Updated site conditions caption.

    5. Updated the help section into multiple components and to make help available only after state selection.

    6. Updated calendar from a half month basis to one day basis.

    7. Updated calculation logic to fit in minified crops.

    8. Changed styling for cash crops.

    9. Minor styling improvements

    10. Updated flooding frequency to filter crops and pull options from API.

    11. Filtered the crops down based on flooding frequency entered by the user.

    12. Mapped over attributes with multiple values in the information sheet.

    13. Fixed a bug not allowing users to progress through Ontario.

    14. Fixed a bug with region not being updated via the map.

    15. Fixed broken tooltips on question marks in the sidebar.

  2. API

    1. Added Health check endpoint: GET {{selector_service_url}}/v1/health-check

    2. GET {{selector_service_url}}/v1/states/{{state_id}}/crops/{{crop_id}}?regions={{regions_id_set}} now includes a pdf property providing url for the info-sheet pdf.

    3. GET {{selector_service_url}}/v2/attribute now sorts the values by the value property in ASC order.

    4. GET {{selector_service_url}}/v2/crops now includes soilDrainage property for each crop ( if available )

    5. Resource model had region_id property changes to regions which is an array of region ids.

    6. added resourceTypeId property to Resource model, providing a belongsTo relationship to ResourceType model.

    7. Created ResourceType model which is an enumeration table for the Resource model.

    8. 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.

    9. Convert Bootstrapping log statements to SYSTEM log level

    10. Changed console logging in dev & prod environments to slack to remove server storage bloat created from logging files.

    11. Added units information to attribute objects in the keyTraits array for crops in the minimal list view.

    12. Adds regional goals list lookup map

    13. Adds Cache object getter function to retrieve goals set based on array of region ids.

    14. Adds setter function to crops list minified resource to artificially fill in missing goals with null values array.

    15. Adds dataType property to attribute objects in crops minified list view

    16. Adds lookup keys property called slug to attribute objects

    17. Added slug and filtered parameter to GET /v2/attribute endpoint

      • filtered = false : all values associated with the attribute will be included in the response

      • filtered = [true || null], only values that are associated with crops will be included in the response

  3. Database

    1. resources table had the column region_id which was a INT datatype changed to regions which is now an ARRAY[INT]

    2. resource_types table created as an enumeration table for resources table.

    3. resources table has new column resource_type_id which has a foriegn key constrait to resource_types.

    4. Flood attribute for NECCC now has None Value.

    5. Flood Tolerance attribute for SCCC now has None Value.

    6. slug column added to attributes table

    7. attribute records with id (840, 28, 931) : slug updated to flooding_frequency

01-01-24

  1. Front end

    1. Center the main section (between header and footer).

    2. 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.

  2. Back end

    1. fixes collision causing any attribute where isGoal || isFilter == true and isKeyTrait == true to not be added to keyTraits property in crop objects for minified list view.

    2. Adds soilDrainage property to all crops in the minified list view response data object.

12-12-23

  1. Front End

    1. Fix filtering for mccc

    2. Change to using a boolean instead of math for setting crop.inactive

    3. FIx loading screen for explorer

    4. Remove unneeded logic for local variable in Filters

    5. More error handling for returning No Data in data extractor

    6. Left align cover crop names in the calendar view

    7. Make cover crop name text black instead of light green

    8. Deleted unneeded JSON file

    9. Made drainage class unselectable

    10. Fix default crop sorting

    11. Simplify logic for reducing opacity in crops that aren't recommended, remove unneeded activeCropDataShadow variable, and delete CropDataRender.js

    12. Rename selectedCrops to selectedCropIds

    13. Rename activeCrops to activeCropIds

    14. Allow the user to proceed with no goals selected

    15. Add all goals to the calendar view instead of average goal rating

    16. Fix background of hessian fly free date

    17. Remove unneeded props from CropCalendarView.js and CropTable.js

    18. Rename CropTableListItem.js to RenderTableItems.js

    19. Rename pullCropData to updateCropData to match redux naming convention

    20. Simplify cropDataFormatter logic

    21. Updated info sheet to display the label if one exists

    22. Remove region data in user history.

    23. Solve a bug that select field would not get updated after click next and click back to return.

    24. Rename LocationComponent to Location.

    25. Reduce login modal padding on mobile

    26. Remove hessian fly free date from legend in NECCC

    27. Remove unneeded sfliters logic

    28. Combine soil and weather steps in the recommendation flow

    29. Fix crops being filtered by drainage class by default

    30. Replace next with View My List in the last step of the recommendation flow

    31. Remove weather editing

    32. Rename Cover Crop Council to Cover Crops Council

    33. Fix a bug with logos not changing

  2. Back End

    1. Fixed Hard Coded PlantingDateCategoryIds & GoalsCategoryIds to now be loaded from CacheProvider in the Crops List View Controller Function

    2. Fixed AttributesController List Options Function to ensure that only options for the provided region show up.

    3. Added Goals Property to Crop objects in minified list view

    4. Added conditional logic to flatten / remove categories from info sheet crop objects. ( 0 to flatten into object, -1 to append )

10-27-23

  1. Front End

    1. Replaced more bootstrap with MUI

    2. Added error handling for when plant hardiness zone API returns no data

    3. Reworked the calendar and list views to be more mobile friendly

    4. Removed lots of all uppercase text

    5. Updated some language

    6. Centered the soil conditions text

    7. Added helper text in several places

    8. Made chip styling consistent

    9. Moved previous cash crop from the sidebar to the goals tab

    10. Allowed user to proceed without selecting any goals

    11. Reduce opacity for greyed out crops

    12. Added frost seeding possible icon for MCCC

    13. Fixed location not displaying in info bar

    14. Added error handling for Ontario

    15. Add text explaining region selector map is interactive

    16. Made goals have a max width

    17. Centered region selector map on available states

    18. Made goal styling the same as the other chips

    19. Fixed hessian fly free date scaling issues

    20. Added more spacing to sidebar filters

    21. Added spacing between sidebar and crops in the browse crops tab

    22. Made the PSA logo the default apple logo

    23. Fixed annual precipitation and monthly precipitation being the same

    24. Created a new rating icon

    25. Removed unused scss

10-18-23

  1. Front End

    1. Made site more mobile friendly

    2. Rename 'Cover Crop Explorer' to 'Browse Cover Crops'

    3. Rename 'Species Selector' to 'Get a Recommendation'

    4. Remove excess disclaimers

    5. Remove lots of text to streamline user flow

    6. Simplify language in many places

    7. Removed previous cash crop name input

    8. Renamed Previous 'Previous Cash Crop Growth Window' to 'Cash Crop Growing Window'

    9. Removed cash crop growing window toggle for calendar view

    10. Changed 'Cove Crop Properties' to 'Cover Crop Filters'

    11. Made 0-5 scale collapsible with filters

    12. Removed 'Add a Crop' option from the cover crop list

    13. Removed lots of question marks in titles

    14. Added search icon to the cover crop search

    15. Added next and back buttons to the bottom

    16. Restructured the entire header to save on white space

    17. Made the sidebar go to the top on mobile

    18. Made all the pages responsive

    19. Removed approximately 5000 lines of scss styling and moved it into individual components using MUI

    20. Removed 95% or so of the bootstrap styling from the application

    21. reworked cover crop list to be a table

10-13-2023

  1. Front end

    1. refactor selected crops and active crops to be a list of ids instead of a list of objects. this will make the application faster

    2. added hessian fly free dates for Midwest

    3. fix bug for filters not showing all available options (ex. 2-3 instead of 1-5)

  2. Back end

    1. Source code

      1. AttributeValue model now has the label property

      2. label property will be included in all AttributeValue objects in Effected endpoints

        • /crops/{id} ( info sheet )

      3. info sheet crop objects will now include family property which will always be a valid family object.

      4. info sheet crop objects will now include group property which will always be a valid group object.

      5. attributes in the info sheet crop objects data array will now include dataType property which will always be a valid dataType object.

      6. Attribute objects in all response objects will now include a new property called unitRange

      7. The unitRange property will either be null, or an object with min and max properties.

      8. The min and max properties will always be integers.

    2. Database

      1. attribute_values table now includes label column

      2. label column supports null values

      3. labels have been added to relevant records

        • Growing Window ( SCCC )

      4. Database now includes a new table called unit_ranges

      5. unit_range_id column has been added to attributes table

      6. unit_ranges has a one to many relationship with attributes where attributes belong to unit_ranges and unit_ranges has many attributes

      7. crop_data view (virtual table) now includes the unit_range_id association

10-01-2023

  1. Front end

    1. update selected crops to be an array of ids instead of an array of objects

    2. added user history for state, region, and consent

    3. fix tiling logic

    4. add tiling for MCCC

    5. add comments to the bottom of each category in the information sheet

    6. refactored weather modal

    7. refactored file structure to be more logical

  2. Back end

    1. SCCC data pull