A Andres Hernandez

Enhancing User Experience: Streamlining Configuration from Key-Value to Predefined Settings in PQRS

The PQRS project often deals with intricate system configurations, which are critical for application behavior. Recently, our focus turned to refining the user experience surrounding these settings, moving away from a highly technical interface towards a more intuitive, user-friendly approach.

The Challenge with Generic Configuration

Previously, the PQRS project utilized a generic 'Key/Value' interface for managing system settings. While flexible, this approach presented significant hurdles for users, especially those without a deep technical understanding of the system's inner workings. Users had to know specific technical keys (like session_timeout or records_per_page) and understand their corresponding values and implications. This often led to:

  • Increased cognitive load: Users had to recall or look up specific keys.
  • Higher risk of errors: Incorrect keys or values could inadvertently break functionality.
  • Steeper learning curve: Onboarding new administrators or non-technical users was more complex.

Imagine trying to adjust your car's climate control by typing in HVAC.TEMP.SET with a numerical value, rather than simply turning a dial or tapping a clear icon. That was the essence of our previous configuration management.

Our Solution: A User-Centric Design Refactor

To address these challenges, we embarked on a refactoring effort focused on transforming the configuration management UI. The core idea was to replace the generic 'Clave/Valor' (Key/Value) section with predefined, labeled settings that guide the user rather than requiring them to guess.

1. Transition to Predefined, Labeled Settings

Instead of a generic 'Add new configuration' input, users are now presented with specific, labeled fields for common settings such as 'Session Time' and 'Records per Page'. Each setting comes with a clear description, making its purpose immediately understandable.

2. Clarity in Labeling

To further reduce ambiguity, especially in filter options tables, we renamed internal labels for clarity. For instance, Valor (Value) was updated to Internal Name, and Etiqueta (Label) became Visible Label. This distinction helps users understand the difference between the data's internal identifier and its presentation in the UI.

3. Improved Form Elements and User Flow

We also made several smaller, but impactful, UI improvements:

  • The 'add-filter' form was converted into a collapsible details element, reducing visual clutter.
  • Modal labels and descriptions were refined for better clarity and context, ensuring users receive precise information when making critical choices.

Illustrative Configuration Structure (PHP)

Conceptually, the shift moves from a simple, unvalidated key-value store to a more structured, metadata-rich definition that informs the UI and provides better validation and context. Here's a simplified example of how this might look in PHP:

// Before: Simple, generic key-value storage
// Users had to know the exact key 'session_timeout'
$settingsFromDatabase = [
    'session_timeout' => '3600',
    'records_per_page' => '20'
];

// After: Predefined settings with metadata for UI and validation
// The UI now uses 'label' and 'description' to guide the user.
$applicationSettingsDefinition = [
    'session_timeout' => [
        'label' => 'Session Time (seconds)',
        'description' => 'Maximum duration a user session remains active.',
        'type' => 'number',
        'default' => 3600,
        'min' => 60
    ],
    'records_per_page' => [
        'label' => 'Records per Page',
        'description' => 'Number of items displayed in paginated lists.',
        'type' => 'number',
        'default' => 20,
        'max' => 100
    ]
];

// Accessing settings in the application becomes more robust:
// $currentSessionTimeout = AppConfig::get('session_timeout');

Key Insight

This refactoring underscores a crucial principle in software development: even backend configurations benefit immensely from a user-centric design approach. By transforming a generic, technical interface into one that is guided and descriptive, we significantly improved usability, reduced potential errors, and made the PQRS project more accessible to a wider range of administrators. Prioritizing clear labels and predefined options over raw flexibility ultimately leads to a more robust and enjoyable user experience.


Generated with Gitvlg.com

Enhancing User Experience: Streamlining Configuration from Key-Value to Predefined Settings in PQRS
Andres Hernandez

Andres Hernandez

Author

Share: