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