NASA-IMPACT / veda-ui

Frontend for the Dashboard Evolution project
Other
25 stars 5 forks source link

[Spike] Simplify AOI creation in E&A #1249

Open aboydnw opened 2 weeks ago

aboydnw commented 2 weeks ago

Context

When investigating some bugs around AOI selection and management, we realized that this is a very complex interaction. We should ask ourselves, does it need to be this complex? What are the basics of what this feature needs to include?

This ticket is to explore potential alternative solutions to AOI creation, upload, and management, that would make the E&A feature simpler to use and more stable.

A quick list of the basic needs we should meet:

Acceptance Criteria

aboydnw commented 2 weeks ago

This ticket might be somewhat related to #1238

In that, if we simplify AOI management, does that simplify the needs of URL parameters, and of sharing analyses?

In that sense, we might want to outline some initial ideas/thoughts here to guide #1238

aboydnw commented 2 weeks ago

@AliceR if you have time, I'd appreciate your ideas/thoughts here since you recently did a deep dive on AOIs

AliceR commented 1 week ago

Thank you for the clear summary. I agree that simplifying AOI selection and management could significantly improve both usability and stability for the E&A feature. Here are some specific ideas on each of the basic needs:

Custom AOI Creation: Drawing a custom AOI is essential, and most of this functionality comes out of the box from drawing libraries. It might help to separate “drawing mode” from other interactions in the UI, so users can focus solely on defining the AOI without triggering other features. This separation could also help prevent edge cases (e.g., unfinished drawings) by providing a more obvious way for users to complete their drawing.

Uploading Predefined AOIs: Supporting uploads for specific, externally defined boundaries (like municipalities) is definitely useful, and our current implementation seems to cover this well.

Selecting Pre-defined AOIs: Predefined boundaries, like state or national boundaries, are crucial, but we could reduce clutter by grouping boundaries in a dropdown to simplify the interface. Again, our current implementation seems to cover this well enough.

Editing/Deleting AOIs: Since editing options vary based on how the shape was created (drawn, uploaded, or selected), we could integrate this in a clearer UX framework:

This separation could reduce the current code’s conditionals and improve user experience consistency.

Multiple AOI Support: If we adopt the distinct “drawing mode” approach, users could draw multiple areas, but only the complete set of drawn AOIs would be used in analysis once they leave drawing mode. As an alternative, if we want to support selecting specific AOIs for analysis, it could be helpful to get user feedback on how often this is used to see if it’s worth the added complexity.

In terms of URL parameters and sharing, simplifying AOI management could indeed make URL parameters cleaner and sharing more intuitive, especially with a leaner feature set.

Happy to discuss these ideas further, and I’m here to help outline user flows that prioritize a simpler UX. I would also like to loop in @faustoperez into these UX considerations!

Let me know if there’s any area you’d like to dive deeper into.

aboydnw commented 1 week ago

Thanks Alice! This is helpful to go through all of this comprehensively. To me, it seems like the main changes from the current UX that you are suggesting are:

  1. Make the "drawing mode" more clear, with tighter rules on interacting with other features on the page
  2. Simplify the "multiple AOIs" functionality to only allow for users to interact (run analysis or delete) with the entire set of AOIs at a time
  3. (Adding my own based on the item above) Users can not select/deselect AOIs. They can delete AOIs or draw AOIs. Without needing to select specific AOIs, there shouldn't be any reason to select/deselect them

Some additional comments

It might help to separate “drawing mode” from other interactions in the UI

It's a little subtle, but I think drawing mode is somewhat separated in the UI. You can only do certain things when you click on the pen icon and if you click on the pen icon is removes any pre-defined AOIs, for example. I think we could make it more clear and lock down some other actions, though, maybe that's what you're suggesting too? For example, I just logged a bug #1258

Supporting uploads for specific, externally defined boundaries (like municipalities) is definitely useful, and our current implementation seems to cover this well.

In general, I agree. We've recently had some issues reported that we are currently investigating, though. Might be worth looking into: https://github.com/US-GHG-Center/veda-config-ghg/issues/648

If we adopt the distinct “drawing mode” approach, users could draw multiple areas, but only the complete set of drawn AOIs would be used in analysis once they leave drawing mode.

I agree with this approach. I think the gains in simplicity would far outweigh any loss in analysis flexibility. I don't think users are using this feature in this way, anyways.

aboydnw commented 5 days ago

If we are looking into simplifying the implementation (in addition to simplifying the requirements and UX) we might consider EOxElements. It's being developed by EOX in their work on the eodashboard.org. There might be some benefit from utilizing a shared set of basic web tools like this. Maybe worth an investigation for this use case, to see if it would make our lives easier?

aboydnw commented 5 days ago

tl;dr on requirements based on some recent conversations:

  1. A user can only use one of the three AOI creation modes at one time (preset, custom draw, upload)
  2. Users can create (or upload) multiple areas at once, but can not select/deselect specific areas. It's all or none (side note, EOxElements does have some functionality related to this, so subject to change if the implementation allows for it, but it's not a requirement)
  3. A nice-to-have feature is that a user can share their analysis with another person. Currently, this is done by copying and pasting the URL. If there are other methods, that is okay, too.
  4. Something that is NOT required is that a user can refresh the page and not lose their work. If this is possible, great. If not, the assumption is that it won't be too difficult for people to reproduce their work.

Let me know if you have any concerns with those @faustoperez @AliceR @hanbyul-here