User Stories - imagine-uniandes/Tweenity2.0 GitHub Wiki

User Stories for Tweenity2.0

User Story 1: Node Creation in Graph

As a Unity developer, I want to create nodes easily in the VR development environment so I can structure a graph using the ProtocolVR methodology.

Definition of Done:

  • The user can create different node types intuitively using controls, and they appear clearly identified in the editor window.

Tasks:

  • Design UI and controls for node creation.
  • Implement automatic labeling/tagging system.
  • Perform usability tests.

User Profiles: Final user (designer, engineer, or researcher).


User Story 2: Node Connection

As a Unity developer, I want to easily connect nodes using arrow-based relationships to quickly visualize connections.

Definition of Done:

  • Users can select and connect nodes with visual feedback. Each connection appears as a line between nodes.

Tasks:

  • Implement edge creation interaction.
  • Develop visual feedback system.
  • Validate interaction through testing.

User Profiles: Final user (designer, engineer, or researcher).


User Story 3: Editing Graph Elements

As a Unity developer, I want to modify and move existing nodes and connections easily to continuously refine the graph.

Definition of Done:

  • The user can dynamically edit node and edge positions and presence.

Tasks:

  • Implement direct manipulation of nodes and edges.
  • Implement dynamic visual updates.
  • Conduct interaction tests.

User Profiles: Final user (designer, engineer, or researcher).


User Story 4: Clear Visual Feedback

As a Unity developer, I want clear visual feedback while interacting with graph elements to easily identify my current selection and active tools.

Definition of Done:

  • The user can clearly see selected elements and active tools via graphical cues.

Tasks:

  • Design visual feedback for selection and interaction (UX Designer).
  • Implement visual states in nodes and edges (Programmer).
  • Test clarity and functionality (Tester).

User Profiles: Final user (developers, researchers, designers).


User Story 5: Dynamic Node Structure by Type

As a Unity developer, I want node structure to change based on type, so each node contains only relevant fields for its function.

Definition of Done:

  • Users can select a node type from the right panel, and the node updates to show only its relevant fields.

Tasks:

  • Implement node type selection system in the right panel.
  • Adapt node view and serialization based on type.
  • Validate that required fields appear and are editable.

User Profiles: Final user (designer, engineer, or researcher).


User Story 6: Link Interactive Objects to Nodes

As a Unity developer, I want to link interactive 3D objects to graph nodes and define specific interactions for them.

Definition of Done:

  • Users can select scene objects and choose which public function of their scripts to invoke when a node is reached.

Tasks:

  • Allow object selection from scene or hierarchy.
  • Automatically list available public functions from attached scripts.
  • Store object-function relationships in the node model.

User Profiles: Final user (technical designer or programmer).


User Story 7: Node Type-Based Color Coding

As a Unity developer, I want nodes to have distinct colors based on their type for easier graph analysis and editing.

Definition of Done:

  • Nodes are color-coded by type (e.g., blue for Timeout, green for MultipleChoice) in both the GraphView and UI.

Tasks:

  • Assign unique colors per node type.
  • Update visual rendering to reflect colors.
  • Add legend or tooltip for visual clarification.

User Profiles: Final user (visual designer, researcher, engineer).


User Story 8: Graph Save and Load

As a Unity scene designer, I want to save and load graph structures to continue work or share with others.

Definition of Done:

  • Users can save/load graphs while preserving full data integrity.

Tasks:

  • Implement graph saving/loading in clear formats.
  • Conduct extensive save/load testing.

User Profiles: Final user (designers, engineers, researchers).


User Story 9: Automatic Graph Layout

As a Unity scene designer, I want the graph to auto-arrange nodes into clear layouts to better present complex structures.

Definition of Done:

  • Users can select from multiple automatic layouts that are clearly and fluidly rendered.

Tasks:

  • Develop auto-layout algorithms.
  • Animate layout transitions.
  • Test layout clarity.

User Profiles: Final user (engineers, designers, researchers).


User Story 10: Graph Exporting

As a Unity scene designer, I want to export the graph's data and visuals to multiple formats for sharing or external tool integration.

Definition of Done:

  • Users can export graph data and visuals to standard image/data formats with precision and completeness.

Tasks:

  • Implement export to multiple formats.
  • Validate export quality and accuracy.

User Profiles: Final user (engineers, designers, researchers).


User Story 11: Example Graph Execution

As an end user, I want to load and run an example graph to understand the tool's functionality and node behavior.

Definition of Done:

  • The system includes a runnable example graph accessible via a button.

Tasks:

  • Create a .twee file with various node types.
  • Implement "Load Example" button.
  • Validate behavior in runtime mode.

User Profiles: Final user (new designer or evaluator).


User Story 12: Runtime Node Execution Visualization

As a Unity developer, I want to visualize which node is active during runtime for debugging and understanding narrative flow.

Definition of Done:

  • During execution, the active node is highlighted in the GraphView and a timeline or transition log is shown.

Tasks:

  • Implement dynamic node highlighting.
  • Display logs or visual feedback of transitions.
  • Allow pause/restart for review.

User Profiles: Final user (designer, programmer, tester).