# User Stories

## MDMS Master Data Homepage <a href="#rwkotq5vn8dc" id="rwkotq5vn8dc"></a>

<figure><img src="/files/JAaXhscWOGxzYAK1fiEy" alt=""><figcaption></figcaption></figure>

### Features

1. Select Master
2. Add new master data
   * Redirect to the “add master data” page
3. Search section
4. View all section
5. Navigation options
   * Add New
   * Search
   * Clear Search
   * Select an object
   * Click on edit against an object
   * Pagination navigation
6. Variations
   * First-time load

## Add Master Data <a href="#jdqae6twg4c" id="jdqae6twg4c"></a>

![](/files/QPSO6kNP4kmhGCBYKImc)

### Features

1. Dynamically rendered form
   * Order of fields
     * In the order of the schema
   * Labels
     * Will be the keys in the schema
   * Input field type
     * Will be dynamically generated based on the schema type
2. Add Localization
   * Default behavior - For every master data created create a localization entry too
     * Keycode - system generated
     * Locale - en\_IN
     * Value - keycode
   * If the user clicks on add localization, here is the flow
3. Save
   * Save one of
   * Save and add another
4. Dependency
   * Some masters have a dependency on others to be added as a prerequisite

### Data Input Fields

#### Render UI for adding fields

**non-editable key-value**

<figure><img src="/files/pQWwU3WwKZmweS4YbZeC" alt=""><figcaption></figcaption></figure>

* For values that are non-editable / view-only

#### **Text input, mandatory**

![](/files/26nhEohQohFRyiEATD5o)

* For all text input fields
* If mandatory then the key label will be highlighted and a prompt shown for violation upon submission

#### **Text input, validation**

![](/files/w7OXO33ra3sZzH6Erix0)

* If there are any validations then the key label will be highlighted and a prompt shown for violation upon submission

#### **Dropdown for referenced master data**

![](/files/tdTtQ2XH0LYIb1j7W2uM)

* If referencing another master data set then the drop-down should show the list of objects from the referenced set
  * The text that will be displayed will be the \<title of object> from the master data that is referenced; The same as the first column in the view/search results section

#### **Boolean selection**

![](/files/DYc703boJrK6cbcwKOsQ)

* For all boolean data types in the schema

## **Input, Date type**

<div align="left"><img src="/files/ARWMMLfZmLKiyQH2nZTf" alt=""></div>

* Where the input type is the date
* Any validations should restrict the range of the calendar.
  * Example: If a date outside a given range of dates is selected raise a prompt for the same; Alternately restrict the selection of such a date too

**Object**

![](/files/A3lBLBSvDHMkmWmTX6cr)

* Card for all “object” data types
* The length of the card will depend on the fields inside the object
* All fields/properties of the object will be rendered in the UI
* The fields inside the box will use the same components as above

**Array of strings** ![](/files/jCC11ZdIzf4YOYlmkqFJ)

* All arrays will have the same UI component
* The user should be able to minimize the array, and in a minimized state be able to see the title of the array
* All array boxes will have a +Add “title of the array” button to add new entities to the array itself
  * No order for removing entities added to the array
* Until the whole form is saved, any object in the array can be edited/removed

**Array of objects**

* All arrays will have the same UI component
* The user should be able to minimize the array, and in a minimized state be able to see the title of the array
* All array boxes will have a +Add “title of the array” button to add new entities to the array itself
  * No order for removing entities added to the array
* Until the whole form is saved, any object in the array can be edited/removed
* Each object box ll have the properties of the “Object” UI component as detailed in the object section
  * The fields inside each array will be the same and will be rendered based on the properties/keys in the object schema

## Add Localisation  <a href="#w1tiy8syv4o2" id="w1tiy8syv4o2"></a>

Add localisation for master data while creating master data

<figure><img src="/files/sT5AHnAftSrpa9LAbJPy" alt=""><figcaption></figcaption></figure>

### Features

1. Add localisation
   * Code - system generated
   * Select Language - select from the list of “locale”s in the tenant
   * Text - Mandatory field
2. Adding localisation for multiple languages
   * Repeat the same process by selecting each language

## Search Master Data <a href="#b2vtekjwpg9o" id="b2vtekjwpg9o"></a>

<figure><img src="/files/PtfjBJbONoJ4YzdMKfSW" alt=""><figcaption></figcaption></figure>

### Features

1. Search
   * Search fields
     * Search fields will be custom-defined for each master - Some master data objects have objects/array of objects inside them, search parameter cannot be a value in this hierarchy; Example: productVariantId inside resources for a projectType master data
     * Type of search fields
       * Text
       * Selection - If the property in the master data object has a reference then the search input will also be a selection-based dropdown
     * Labels for the search fields will be picked from the value of the key of the property that is selected
2. Clear search - Will clear the entered values in the search input boxes and also the results to default
3. View Search results
   * Search results
     * Default - By default will load all the objects in the corresponding master
   * Order of listing - Search results will be listed in ascending order(A-Z) of the first column when the page loads
   * List of columns to be displayed- Will be customized for each master
   * Sorting - Sorting will be available for every column
4. Variations - No results found

## View All <a href="#b0wlo3f8bj5g" id="b0wlo3f8bj5g"></a>

<figure><img src="/files/eO7Fnswm4HNPRu73oLOj" alt=""><figcaption></figcaption></figure>

### Features

1. Columns
   * List of columns to be shown - Will be custom-defined for each master
   * Order of columns - Will be custom-defined for each master
2. Rows
   * Number of items in the row - As per the DIGIT UI design system
   * Edit option - Every row object will have an edit icon, that will redirect to the “Update” page for the corresponding object

## View One <a href="#uyl6k3345nxx" id="uyl6k3345nxx"></a>

![](/files/6PiIMeZxLHT64LycnOMS)

### Features

1. View the object’s details - Page layout will be the same as the “add new” page - except all fields will be non-editable
2. Navigation options - Update

## Edit & Update Master Data <a href="#id-4udjjlz5l5m1" id="id-4udjjlz5l5m1"></a>

![](/files/ZwtjjUBy6r8srizTtrng)

### Features

1. Object details
   * The page will be rendered as the add new page - except there won’t be an option for “Save and Add Another”
   * Disable
2. Navigation options
   * Save


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://workbench.digit.org/specifications/user-stories.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
