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

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:

  1. Hierarchy-Based Lookup: Project, Item Type, Requirement Item
  2. Baseline Hierarchy: Baseline, Baseline Item Type, Baseline Item
  3. Orphan Items: Only if not found in the above

This prioritization ensures efficient server load handling.

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

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 

https://github.com/openrose



Comments

Popular posts from this blog

Introduction to OpenRose - Requirements Management

What is Requirement?

Details View - OpenRose - Requirements Management