This document outlines the functional requirements of the web application, detailing the core features and capabilities necessary for its development. Each requirement is carefully structured to enhance usability, flexibility, and efficiency.
Additionally, these functional requirements have been grouped into clusters based on their intent and purpose. This categorization helps in understanding the relationships between different features, making it easier to plan development, prioritize tasks, and optimize the overall user experience.
The following sections provide a detailed list of functional requirements and their respective clusters for better organization and clarity.
- Create and execute programs.
- Use visual bricks to represent program components.
- Connect bricks to form logical sequences.
- Implement mathematical operations.
- Construct musical compositions.
- Create digital artworks.
- Categorize bricks based on functionality.
- Enable workspace theme customization (light/dark mode).
- Expand or collapse code bricks.
- Display artworks directly on the workspace.
- Execute programs step-by-step or at a controlled speed.
- Save, load, and create new projects.
- Generate and display project statistics.
- Implement zoom and pan functionality in the workspace.
- Support multiple languages.
- Delete bricks from the workspace.
- Implement undo functionality.
- Allow abstraction of program sections through action bricks.
- Save programs to cloud storage.
- Save artwork files.
- Export music as sheet music.
- Categorize and color-code bricks for better usability.
- Provide a user guide or tutorial.
- Offer different modes (beginner/advanced).
- Allow users to configure settings.
- Implement search functionality for bricks.
- Provide a text-based code editor alongside visual programming.
- Support the addition of plugins and extensions.
- Stop currently running programs.
- Toggle fullscreen mode.
- Merge multiple programs into one.
Grouped Points | Rationale |
---|---|
1-6, 18 (Build Programs) | Construct and organize programs |
6, 10 (Artworks) | Empower users to create and visualize art programmatically. |
7, 9, 22, 26, 28 (Bricks) | Create, modify, categorize, and search bricks. |
8, 14, 30 (WS Viewing) | Adapt the workspace to user preferences for comfort and productivity. |
11, 29 (Run Program) | Run, stop, and run step-by-step through programs |
12, 19, 20, 21 (Save) | Ensure users can save, export, and access projects across formats/devices. |
12, 31 (Save/Merge) | Save, load, merge and create new projects. |
13, 23 (Show Info) | Help users track progress and learn through statistics and guides. |
15 (Language) | Broaden app accessibility for non-English speakers. |
16, 17 (CRUD on Bricks) | CRUD operation to minimize friction from mistakes and streamline editing. |
24 (Modes) | Cater to diverse skill levels with tailored interfaces. |
25 (Configurations) | Allow users to tailor the app to their workflow and hardware. |
27 (Text Editor) | Support both visual and traditional coding preferences. |