top of page

Global Search Feature

The objective of this project was to design and implement a search capability within Open MCT, enabling users to efficiently locate telemetry and various objects within the UI.

BACKGROUND.

While the primary use case was for VIPER mission operators, this capability was essential for all Open MCT users. Users often work with numerous data points and objects, both user-created and default, many of which may be nested within complex folder structures in the Object Tree. This complexity found to make it very challenging to quickly locate specific elements, leading to frequent searches through multiple folders and the selection of incorrect objects due to duplicate names, and ultimately leading to user frustration.

These challenges highlighted the critical need for a solution that would allow users to efficiently find the elements they were searching for.

USE CASE.

Given the complexity of Open MCT's Object Tree, the primary challenge was to design a UI capable of efficiently parsing through hundreds of objects and presenting them in a manner that allows users to easily locate and select the desired item.

The image on the right illustrates how quickly the Object Tree can become complex and difficult to navigate. Now, imagine the perspective of a user attempting to quickly find an element while having to expand and collapse numerous folders.

THE CHALLENGE.
Example Object Tree.png

Example of how complex the Object Tree can become

GOAL.

Implement a Global Search that is able to quickly and effectively find the element that a user is looking for.

Address all use cases. The element a user is searching for may exist in various forms, such as an object name, tag, telemetry point, or even duplicate names of the same, or different object, located in different areas.

Make it simple and convenient for a user to select the desired object.

USER RESEARCH.

After establishing our goals, I spent some time observing, analyzing, and speaking to people who utilize Open MCT in various ways. This helped me understand the different cases of how Global Search can be utilized, and how we can design the feature such that it caters to a wide audience of users. 

I also documented the current user workflow for locating objects within the tree and outlined our intended end goals for the feature.

What is the current typical workflow for an Open MCT User? 

User is building a complex display. She wants to drag in a telemetry point from her Open MCT Object Tree into the layout.

User opens the Object Tree, and with her general idea of where the telemetry is located, starts expanding and collapsing folders to search for it. 

She finally finds the telemetry point, and drags it into her layout. By this time, a lot have minutes have passed, and she is frustrated because she realizes she will have to do this another 50 times for 50 more telemetry points. 

What do we want the workflow to be like for an Open MCT user? 

User is building a complex display. She wants to drag in a telemetry point from her Open MCT Object Tree into the layout.

She knows what the name of the telemetry point is, so she opens up Global Search and types in the keywords. 

All matching results are shown. She is able to select the result she wants, and drag it into her display. 

In order to understand what features are needed to implement a Global Search, I observed, analyzed, and met with multiple types of Open MCT users within NASA. I asked about their needs, what their issues with the current Open MCT UI were, and what they thought could be useful. 

NEEDS FINDING.
DESIGN QUESTIONS.

Establishing our goal workflow, I got to work on listing out all the design questions that I had, based off my user research and different user scenarios. 

How do we handle the scenario where there exists the same name for multiple objects in the tree? 

How do we organize the search results? 

Where will the search feature be located in the Open MCT UI? 

After a user finds the result they are looking for, what are the different user interactions they can do with it?

What additional features within search may be useful to the user? 

WIREFRAMING.

I began wireframing to figure out the structure and layout for the Global Search feature. 

search with dropdown pane.png

2

3

4

1

Some key things to point out from the wireframes: 

1

Search results will be displayed as a popup on desktop to ensure that users can continue working on their display while viewing the results. This approach facilitates easier decision-making by allowing users to see their work contextually as they review the search outcomes.

2

Each search result includes the folder path leading to its location. This feature provides users with additional context about where the result is located, helping determine its relevance and ensuring they select the correct item and avoid any mistakes

3

Search results will be organized by type. The different types of possible results we could have are annotation results (e.g, keywords in a Notebook entry), object results, or tag results. 

4

The Global Search feature will be positioned at the top of the page, adjacent to the Create Menu. This placement ensures constant accessibility for users, as this area remains consistent and distinct from the potentially crowded sections of the UI where displays are managed.

Some additional design notes: 

  1. Users can directly drag from the search result, and drop the object into the display they are building.

  2. Folder paths associated with each search result are clickable links that navigate users to the relevant folder.

  3. While in "Edit Mode," clicking on a search result opens a preview of the item, allowing users to verify their selection before finalizing it.

FINAL DESIGN
& END PRODUCT.

Here is a video that showcases the final design, after it had already been developed and implemented into Open MCT. This feature is widely used now, by all different types of users. 

Example video of Global Search in Open MCT

bottom of page