Enhancement - GoTo Requirements Navigation Links
Introducing the New "GoTo" Feature in OpenRose
The OpenRose team has been hard at work responding to community feedback, and today we're excited to share a deep dive into a highly requested enhancement: the GoTo feature. This capability allows users to quickly navigate to any specific record in the repository by simply providing its unique ID.
What Is OpenRose?
OpenRose is a free and open-source requirements management tool designed to help teams manage complex data structures with ease. You can explore the project and contribute at github.com/openrose.
The Enhancement Request
The request came from users who wanted a way to jump directly to a specific record by entering its ID. This simple yet powerful idea sparked a detailed concept document outlining how the feature would be implemented.
Understanding OpenRose Data Types
OpenRose manages several types of records, each with a unique identifier. Here's a breakdown:
- Project → identified by Project ID
- Item Type → identified by Item Type ID
- Requirement Item → includes sub-requirements and child items
- Orphan Items → created when a project is deleted
- Baseline → snapshot of a project or item type
- Includes Baseline Item Type and Baseline Requirement Items
Each of these records can be referenced using a globally unique identifier (GUID).
Navigating the Repository
Users can view records in two main ways:
- Tree View: Shows the full hierarchy on the left-hand side
- Detail View: Displays breadcrumbs and detailed information
The GoTo feature will support both views, with Detail View as the default to optimize performance for large projects.
How the GoTo Page Shall Work
The GoTo page will be simple and intuitive:
- A text box to enter the unique record ID
- A radio button to choose between Detail View or Tree View
- A GoTo button to initiate navigation
Once the user clicks "GoTo" button, then the system shall locate the record and display it in the selected view.
Direct URL-Based Navigation
Users can also navigate directly using a URL with the record ID as a query parameter. This enables:
- Bookmarking
- Linking in documentation
- Embedding in emails or external apps
Search Order Optimization
To improve performance, the system will search for records in the following order:
- Hierarchy-Based Lookup: Project, Item Type, Requirement Item
- Baseline Hierarchy: Baseline, Baseline Item Type, Baseline Item
- Orphan Items: Only if not found in the above
This prioritization ensures efficient server load handling.
Embedded GoTo Links for Cross-Referencing
One exciting use case is embedding GoTo links directly into the description field of a record. This allows:
- Soft linking between related records
- Cross-repository references
- Rich documentation and traceability
Soft GoTo Links and Cross-Record Associations
When inserting a soft GoTo link—a hyperlink referencing another record—you can also describe its purpose. This allows users to:
- Explain the reason for linking
- Clarify the association between records
- Enhance referencing and provide context
Embedding these links within requirement descriptions creates a rich web of interconnected data, improving collaboration and understanding across teams.
Strategic Importance of GoTo Efficiency
The GoTo feature is expected to be widely used across teams, customers, and projects. To ensure scalability and performance, the OpenRose team has designed the feature with a server-side-first approach.
Server-Side Processing
- Primary resolution of record IDs happens on the server
- Reduces client-side complexity
- Ensures efficient access to deeply nested records
Minimal Client-Side Logic
- Client passes the record ID to the server
- Server returns a standard data transfer object (DTO) that includes information about found record
- Client uses this DTO to navigate to the appropriate view (Detail or Tree)
This architecture ensures that most of the heavy lifting is done on the server, optimizing performance and minimizing latency.
Non-Functional Requirements
The team has carefully considered non-functional aspects such as:
- Efficiency: Fast resolution of record IDs
- Performance: Reduced load on client and processing and searching for data on the server
- Scalability: Designed to support large repositories and frequent usage
These goals are achieved by leveraging the API layer of the OpenRose application, ensuring robust and reliable navigation.
From One-Line Request to Full Concept
It’s fascinating to see how a simple user request—“Allow users to go to a specific record by providing its ID”—evolved into a comprehensive concept document. The team explored:
- Functional requirements
- Non-functional requirements
- Data types supported
- Design decisions
- Direct and embedded link strategies
This depth of thinking reflects the commitment to building a feature that’s not only useful but also thoughtfully engineered.
Empowering the Community
OpenRose is more than just a tool—it’s a community-driven platform for managing requirements across software and non-software projects. By sharing this video and article, we hope to:
- Spread awareness of OpenRose
- Encourage adoption by individuals and teams
- Showcase the value of open-source collaboration
Thank you for supporting OpenRose. We’re excited to see how you’ll use the GoTo feature to streamline your workflows and enhance your project management experience.
OpenRose, a free and open-source requirements management application / tool. For more information, visit
Comments
Post a Comment