evomimic / map-holons

3 stars 1 forks source link

Implement UC: View Map Home Page #97

Open evomimic opened 1 month ago

evomimic commented 1 month ago

Implement the View Map Home Page Use Case as described in: UC: View Map Home Page

Dependencies

None

Proposal

Testing

We are using human-testing (not automated testing) protocols for testing use case functionality.

Definition of Done:

evomimic commented 3 weeks ago

@nphias : Maybe a place to start with the client-side architecture would be to get aligned around some basic architectural principles.

I'm assuming the following:

  1. Separation of concerns -- clean separation of presentation logic (in dynamically selectable visualizers) from model objects (entity objects) from behavioral logic (e.g., controllers + dances).
  2. Decoupling -- careful attention to dependencies to support "plug and play" visualizers and dynamic task flows.

I'm open to discussing the trade-offs in the following areas:

  1. Data Flow -- I favor bi-directional flows (though we may initially start with uni-directional)
  2. State Management -- I'm leaning towards centralized state management (e.g., Redux) vs. distributed state management (e.g., Component-Based Architecture). But this distinction may be somewhat moot in our architecture due to the uniform nature of the API. I'm leaning AWAY from direct DOM manipulation.
  3. Interaction Handling -- I suspect mediated interaction (e.g., MVVM) will more easily accommodate dynamic visualizer selection
  4. Reactive (RxJS, MobX) vs. Non-Reactive (MVP, MVC) -- I lean towards the former

For the Model layer,

evomimic commented 2 weeks ago

Here's a diagram that reflects some additional thoughts I have on client-side architecture. ClientSideArch