User Stories - 24-S2-2-C-EduKATE/EduKATE_flutter GitHub Wiki

Sprint 1

User Story 1

As a user, I want to click the "PICTURE BLOCK" button on the home page so that I can enter the Picture Block page.
Acceptance Criteria:

  • When I click the "PICTURE BLOCK" button on the home page, I will be taken to the Picture Block page.
  • The transition to the Picture Block page should be smooth and intuitive, with clear navigation.
    Estimated Time: 2 hours
    Priority: High

User Story 2

As a user, I want to open the map by clicking the sidebar button so that I can see the position of the robotic dog on the map.
Acceptance Criteria:

  • When clicking the sidebar button, the map will open.
  • Can clearly see the position of the robotic dog on the map.
    Estimated Time: 3 hours
    Priority: Medium

User Story 3

As a user, I want to progress to the next level after completing a stage so that I can experience more challenging tasks.
Acceptance Criteria:

  • After completing the current level, the system will prompt me to enter the next level.
  • The difficulty will gradually increase, adding new obstacles or tasks.
    Estimated Time: 4 hours
    Priority: High

User Story 4

As a user, I want the dog’s image to move according to the instructions when I drag the command blocks, so that I can visually see the effect of my commands.
Acceptance Criteria:

  • Every time a command is executed, the robotic dog’s image will move to the corresponding position based on the instructions.
    Estimated Time: 4 hours
    Priority: High

User Story 5

As a user, I want to open the game on different platforms (like mobile, tablet, and computer) so that I can practice programming anytime, anywhere.
Acceptance Criteria:

  • The game runs smoothly on different devices, whether on Android or iOS mobile/tablet, or Windows and Mac computers.
  • The user interface adapts well to different screen sizes, maintaining good usability.
    Estimated Time: 2 hours
    Priority: High

User Story 6

As a user, I want to start the robotic dog's program by dragging the "Start" block so that I can begin my programming adventure.
Acceptance Criteria:

  • When I drag the "Start" block and execute it, the robotic dog's program will start and be ready to accept further commands.
  • A message will pop up on the screen saying, "Program has started!"
    Estimated Time: 2 hours
    Priority: High

User Story 7

As a user, I want to stop the robotic dog's program by clicking the "End" button so that I can conclude my programming experience.
Acceptance Criteria:

  • When I click the "End" button, the robotic dog's actions will stop, and the program will end.
  • A message will pop up on the screen saying, "Program has ended!"
    Estimated Time: 2 hours
    Priority: High

User Story 8

As a user, I want to make the robotic dog bark by dragging the "Bark" block so that I can enhance interactivity and fun.
Acceptance Criteria:

  • When I drag the "Bark" block and execute it, the robotic dog will make the corresponding barking sound.
  • A message will pop up on the screen saying, "The dog is barking!" to enhance feedback.
    Estimated Time: 3 hours
    Priority: Medium

User Story 9

As a user, I want to make the robotic dog produce different sounds by dragging the "Make Sound" block so that I can create varied programming effects.
Acceptance Criteria:

  • When I drag the "Make Sound" block and select a specific sound, the robotic dog will produce the corresponding sound based on my choice.
  • A message will pop up on the screen saying, "The dog made a sound!" to enhance the interactive experience.
    Estimated Time: 4 hours
    Priority: Medium

User Story 10

As a user, I want to control the movements of the robotic dog on the map by dragging the command blocks so that I can implement my instructions in the game.
Acceptance Criteria:

  • The user can create commands by dragging blocks such as "Move Up," "Move Down," "Move Left," and "Move Right."
  • The commands can link together in the puzzle area to form a complete instruction.
  • The dog on the map will move according to the commands.
    Estimated Time: 4 hours
    Priority: High

User Story 11

As a user, I want to click the small house button in the top left corner to return to the home page so that I can easily navigate back.
Acceptance Criteria:

  • When I click the small house button, I will be taken back to the home page.
  • The transition back to the home page should be smooth and intuitive, ensuring I can easily find my way back.
    Estimated Time: 2 hours
    Priority: High

User Story 12

As a user, I want the application to be more efficient and responsive so that I can have a better experience using it.
Acceptance Criteria:

  • The application runs smoothly without unnecessary delays or errors.
  • Any redundant features or code that slow down performance are removed.
  • The application is thoroughly tested to ensure that all functions work as expected. Estimated Time: 8 hours
    Priority: High

Sprint 2

User Story 1

As a user, I want the button colors for image blocks to align with the new design system so that the interface looks cohesive and modern.
Acceptance Criteria:

  • All image block button colors should match the new design.
  • Hover and focus states must be consistent across all buttons.
    Estimated Time: 2 hours
    Priority: Medium

User Story 2

As a user, I want the sidebar toggle button to be more visible so that I can easily access it.
Acceptance Criteria:

  • The size of the sidebar toggle button should be increased.
  • The button color should be set to black for better visibility.
    Estimated Time: 1 hours
    Priority: Medium

User Story 3

As a user, I want the gap between the main workspace and the sidebar to be reduced so that the layout feels more compact and organized.
Acceptance Criteria:

  • The spacing between the main panel and sidebar should be minimized.
    Estimated Time: 1 hours
    Priority: Low

User Story 4

As a user, I want the "Run", "Stop", and "Upload" buttons to be positioned closer to the workspace so that they are easier to access.
Acceptance Criteria:

  • The buttons should be aligned logically near the workspace edge.
  • Padding and margins should be standardized with other UI components.
    Estimated Time: 1 hours
    Priority: Medium

User Story 5

As a user, I want the outcome space located below the program space to display the results of my program execution, so that I can easily understand the outcome of my actions.
Acceptance Criteria:

  • The outcome space updates in real-time to show the results of the program execution.
  • Successful actions are clearly indicated.
  • The layout of the outcome space is user-friendly and allows for easy reading of the displayed information.
    Estimated Time: 2 hours
    Priority: High

User Story 6

As a user, I want the outcome space to display each action taken by the virtual dog after I press the "Play" button for the "Start Virtual" block, so that I can track the sequence of movements and confirm that the program is executing as intended.
Acceptance Criteria:

  • After pressing the "Play" button, the outcome space updates in real-time to show actions such as "go left," "go right," and "reach the destination."
  • Each action is listed sequentially in the outcome space as it occurs during execution.
  • The information is presented in a clear and readable format.
    Estimated Time: 2 hours
    Priority: High

User Story 7

As a user, I want to see a visual glow effect when selecting blocks in the workspace so that I can easily identify which block is active.
Acceptance Criteria:

  • Blocks in the workspace and toolbar should exhibit a glow effect when selected or hovered over.
    Estimated Time: 8 hours
    Priority: Medium

User Story 8

As a user, I want a short sound effect to play when I click on a block so that I receive auditory feedback for my actions.
Acceptance Criteria:

  • A sound effect should play upon clicking any block.
    Estimated Time: 8 hours
    Priority: Medium

User Story 9

As a user, I want the dragging and dropping of blocks to feel smoother so that I can interact with the interface more efficiently.
Acceptance Criteria:

  • Dragging and dropping should be seamless with minimal lag.
  • Connected blocks should be draggable together.
    Estimated Time: 5 hours
    Priority: High

User Story 10

As a user, I want blocks to automatically adhere to each other when they are close, making it easier to connect them without precise alignment.
Acceptance Criteria:

  • Blocks should connect smoothly when dragged near each other.
  • The magnetic snapping feature should feel natural.
    Estimated Time: 4 hours
    Priority: High

User Story 11

As a user, I want the Repeat Block to allow embedding of other blocks so that I can create complex sequences easily.
Acceptance Criteria:

  • The Repeat Block should support embedding and connection of other blocks.
  • It should allow size adjustments and record embedded block information.
    Estimated Time: 6 hours
    Priority: High

User Story 12

As a user, I want the Repeat Block to manage execution counts and iterate correctly so that I can automate tasks reliably.
Acceptance Criteria:

  • The Repeat Block must support three connection-point types.
  • It should manage and reset the repeat count accurately, including nested blocks.
  • Errors in the sub-sequence should halt further repeats and provide feedback.
    Estimated Time: 8 hours
    Priority: High

Sprint 3

User Story 1

As a user, I want to use the "Start Virtual" block to initiate code execution in the virtual environment so that I can test and debug my program before applying it to the physical robot.
Acceptance Criteria:

  • The "Start Virtual" block is clearly labeled and easy to find in the block library.
  • When I press the "Play" button, the code following the "Start Virtual" block executes in the virtual environment.
  • The virtual dog responds to the commands as programmed.
    Estimated Time: 7.5 hours
    Priority: High

User Story 2

As a user, I want to use the "Start Physical" block to upload and execute code on the physical robotic dog so that I can control its movements in the real world.
Acceptance Criteria:

  • The "Start Physical" block is clearly labeled and easy to find in the block library.
  • When I press the "Upload" button, the code following the "Start Physical" block is sent to the physical robot.
  • The physical dog executes the commands as programmed.
    Estimated Time: 7.5 hours
    Priority: High

User Story 3

As a user, I want to differentiate between the specialized blocks for "Start Virtual" and "Start Physical" so that I can intuitively identify and use specific commands relevant to each environment.
Acceptance Criteria:

  • The "Start Virtual" block allows for specific commands (e.g., moving up, down, left, right) that are designed for virtual execution.
  • The "Start Physical" block contains a different set of commands that are suitable for physical execution.
    Estimated Time: 7.5 hours
    Priority: High

User Story 4

As a user, I want to ensure that the "Start Virtual" block is excluded from the code when uploading to the physical robot so that the physical dog only executes relevant commands.
Acceptance Criteria:

  • The system automatically removes or ignores the "Start Virtual" block when the "Upload" button is pressed.
  • The physical robot only executes commands following the "Start Physical" block.
  • The system provides feedback confirming that the virtual block has been excluded.
    Estimated Time: 7.5 hours
    Priority: High

User Story 5

As a user, I want to ensure that the "Start Physical" block is excluded from the code when running in the virtual environment so that the virtual dog only executes relevant commands.
Acceptance Criteria:

  • The system automatically removes or ignores the "Start Physical" block when the "Play" button is pressed.
  • The virtual dog only executes commands following the "Start Virtual" block.
  • The system provides feedback confirming that the physical block has been excluded.
    Estimated Time: 7.5 hours
    Priority: High

User Story 6

As a user, I want the outcome space to display any error messages encountered during program execution, so that I can troubleshoot if necessary.
Acceptance Criteria:

  • The outcome space shows error messages clearly when encountered.
  • Error messages are highlighted and easy to distinguish.
    Estimated Time: 2 hours
    Priority: High

User Story 7

As a user, I want to receive an error message if I try to run code with only a "Start Virtual" block and no other commands, so that I can correct my program before execution.
Acceptance Criteria:

  • If I press the "Play" button with only a "Start Virtual" block and no other blocks, an error message is displayed.
  • The error message clearly states that no commands are available to execute.
  • The program does not proceed until additional blocks are added.
    Estimated Time: 4.5 hours
    Priority: Medium

User Story 8

As a user, I want to receive an error message if I try to upload code with only a "Start Physical" block and no other commands, so that I can ensure the physical robot has instructions to follow.
Acceptance Criteria:

  • If I press the "Upload" button with only a "Start Physical" block and no other blocks, an error message is displayed.
  • The error message clearly states that no commands are available to execute.
  • The program does not proceed until additional blocks are added.
    Estimated Time: 4.5 hours
    Priority: Medium

User Story 9

As a user, I want to receive an error message if I place commands in the wrong context by using specialized blocks after the "Start Physical" or "Start Virtual" blocks, so that I can ensure correct command usage.
Acceptance Criteria:
If a specialized block that is only valid for "Start Virtual" is placed after the "Start Physical" block, an error message is displayed.

  • If a specialized block that is only valid for "Start Physical" is placed after the "Start Virtual" block, an error message is displayed.
  • The error message clearly states the nature of the restriction and provides guidance on correct usage.
  • The program does not proceed until the errors are resolved.
    Estimated Time: 4.5 hours
    Priority: High