runrig-coop / early-warning-system

An early warning system for Richland Gro-Op to coordinate field health.
GNU General Public License v3.0
2 stars 1 forks source link

Depreciate farm status over time #6

Open jgaehring opened 1 year ago

jgaehring commented 1 year ago

Part of the MVP will be to change the farm's overall status, in :red_circle: :yellow_circle: :green_circle: terms, over time, moving from green to red if positive updates are not provided after a sufficient length of time.

This will essentially be a computed value, based on the timestamps and last known assessment(s) of the farm and/or crops overall health.

jgaehring commented 11 months ago

Like #5, I added this one to the 1.0.0-alpha.1 milestone. I suppose we could skip this one, since the mockup displays the date and status, and that technically could refer to the status at the time of the last report, instead of how that status has depreciated since the time of reporting.

But if we added changed the functionality later, it would be a breaking change to the UX, imo, since it essentially changes the meaning of the status indicators and could throw off the user's workflow if they've already grown accustomed to the original functionality. Plus, I think a super simple algorithm should be really easy to attain, like "for every 5 days since the last report, decrement the status by 1 level."

jgaehring commented 10 months ago

Before any of this, we need to work out how status updates are accrued and stored. The work on #25 did not address this, although it set things up for success on the frontend, since the timestamp can be stored on the modal's @close event. The backend will require more consideration, however, since we're still using simple integers as placeholders for proper Date/Time values. It may be good to retain a history of status updates events, too, separately from the farms themselves, so that the status becomes essentially a materialized view, like I mentioned in #22. There I discussed how these events might be termed triage assessments and considered original data, rather than the actual status, which should instead always be considered a computed and/or ephemeral value.

Needless to say, this all will require more thought than I wanted to dedicate to #5.

jgaehring commented 7 months ago

Bumping this back once again to the alpha.3 milestone, regarding the data model, for the reasons mentioned in the previous comment.