Contact Me

Enterprise Asset Management Solutions

Helping enterprise businesses with managing assets.
Saas Design System UI/UX Design iOS Design Android Design

This isn't project's full case study, because of the NDA, also logo and data aren't actual.

Enterprise Asset Management System (EAMS) Design
The Problem

As the company grows, the number & types of assets increase, making it difficult to manage them properly, which often leads to a lot of problems such as assets frequent damage, unplanned downtimes, etc. Which in itself increases expenses for the companies.

The Opportunity

By simplifying and correctly receiving, processing and delivering data to the customer, it is possible to utilize the existing material-technical or physical-human base as accurately and fully as possible, which reduces time and nerve loss in employees. Which in itself means reducing company costs and increasing profits and making it even easier for companies to scale.

The Problem & The Opportunity
My Role

I've joined EAMS team, when they had a legacy, MVP system with some basic solutions working and they saw the opportunity to scale, they say that there was a tons of possibilities to optimize and automatize bunch of routines and make employee lives much easier, plus help companies to save more resources. In the very beginning, my role for this product was to develop and plan a design system (language) properly for better scaling, simplify/optimize existing ideas and data visualizations, but this product scaled and become a set of SaaS product solutions, we made it cross-platform, so I had to work on the UI Library not only for web, but also for the Android and iOS native applications, to develop platform appropriate solutions, which was a huge challenge and experience for me as a Product Designer.

Step by Step Case Study

Interface Styling Exploration

In the first stage, together with the project manager, we've collected all the key features that the system would have (client companies will need), why there was a need of those features, what problems problems was the client experiencing, which has led them to us, how were those features working with other competitors, what were the main constraints with the legacy system, also we defined the user roles, who were going to use this product and for what, then we tried to break down and document each function in detail, identify users' problems and needs. In line with all this, in the first stage we divided the system into main modules and sub-modules and developed a corresponding general sitemap and user journey.

We then tried to make more detailed and descriptive break down for each key module and set of functions, specified user flows, ie what path the user would need to take to use each function.

Tables Wireframing

Since we knew that, the biggest part of the product (system) would be data tables, I've decided to start working on system interface with tables' design. I got one of the most data-loaded module and started working on table design for this data, adjusted it using the best practices and also developed some new approaches, but I'm not going to talk much about it, because there are tons of good articles about data table designs. (But if you want to hear more on what problems I've encountered, what I've learned / discovered and read something new, you can visit Medium and you'll find my article there about enterprise table design on touch native devices → Classic Tables vs Lists on Touch Devices)

Enterprise Asset Management System (EAMS) Table Example
UI Library

When it comes to systemizing the design I’ve developed some approach which is similar to Atomic Design. I knew that this system would be more than a web product, so I’ve made a system foundations where we’ve colors, font-faces, etc and scaled system based on that.

Colors & Typography

As a primary color I’ve selected blue as it represents stability and loyalty, sky with full of opportunities and freedom.

UI Library - Color Palette Example 1 UI Library - Color Palette Example 2

Open Sans was selected as the primary font-face, because of its good readability even on the very small sizes, its simple glyphs and the open source license, but for titles we’ve selected Montserrat family, because of simple, clean and pretty glyphs.

UI Library - Typography Example 1

There are various of studies which have found, that 8% of digital product users are fully or partially color blind, so when I was working on secondary or tertiary (and especially on alert) colors I’ve made a big contrast between background colors and text colors which has to be written on it and also made a saturation contrast between all colors, made much important colors more to dark and less important ones more to light, because in this case even for fully color blind people it will be different and they can interact with the system as easily as the regular people.

Enterprise Asset Management System (EAMS) Table Example in Grayscale

When we’ve confirmed base design language and styling elements, I’ve decided to make wireframes for all the main modules (I’m going to write a bit more about some of the most important solutions slightly below) and after that I’ve started working on making design system elements and as a base library I’ve decided with the lead frontend engineer to took the Google Material Design.

Icon Design Based on Google Material Guidelines

Due to the uniqueness of the system, I’ve found that most of the icons we needed where unique and none of the icon packs were fully enough, also I’ve found out that compared to other icon packs I liked Material Icons more, but even though, I didn’t fully like it (in most cases it has not enough roundness for example), so I’ve decided to create an unique icon pack for EAMS using Material icon guidelines. In the end, I’ve created up to 200 unique icons for EAMS.

UI Library - Iconography Example
Elements Anatomies & States

I’ve used 8 point grid alike approach for sizing, just I’ve started scaling from 2pt. When working on components, I’ve tried to have all states for each component and documented anatomy and styling of them, to be in sync with the developers and to make system seamless and standardized in current and future designs.

UI Library - Buttons Architecture Example 1 UI Library - Buttons Architecture Example 2 UI Library - Inputs Architecture Example 1 UI Library - Inputs Architecture Example 2
Some Micro Interactions in System

Export Interaction: As we’ve (me, pm and developers as a team) discussed, that we couldn’t get the exact time exporting a file would take, but could easily get approximate time and as we’ve tested this approximate time was about 3-5 seconds (the biggest file needed 6-7 sec and the smallest 1-2 sec, but mostly 3-5 sec), without an interaction, the user will be frustrated and will think that system has failed/crashed and:

  1. If we’ve locked the button after the first click, the user would have closed the window at all.
  2. If we’ve not locked the button, the user would have clicked several times on “Export” and it would increased a load on system (so waiting time will be increased as well) and the same file would be downloaded multiple times.

With all this in mind, we decided to have a “fake loader” which was going to last for 3-5 seconds, it had no numbers and showed the user, that system has received his/her request, so the user would never could guess the loader was fake.

Uploader Button Micro Interaction Example

Global Filters Interaction: We had a feature called the “Global Filters”, it’s main idea is, that it filters all data though the system, so you apply it once and then when you go through the system everything is filtered based on that, before you clear it (for example if you select Motorola in the Manufacturer field, where you go in the system, everywhere, everything will be filtered with Manufacturer: Motorola). The main reason why this feature is needed is that, if company buys several things from one Manufacturer, (temperature, radio, gyroscope, etc), they need to find things easily and make the list of needed parts from simply selecting some “Global Filters”. These filters will be shown in container within the other filters as well, but since there could be too much basic filters applied, in some cases the user will be confused not getting if he/she has applied this filter on this page or is this a Global Filter, because of this, I’ve created an indicator for Global Filters when they are applied and it has this kind of animation to interact with the user and to show that the page is filtered globally.

Global Filter Button Micro Interaction Example

Some Main Solutions/Cases

Dashboard

This is a landing page for the system user after log in, here that can have an overview of some assets and modules, also if this is a technical user or user who’s responsible of maintenance of the assets system show them asset statuses, defect informations, sensor indicator trends, etc. Also user can see how many assets they have, how many of them if free and how many busy, which ones are on the warranty and which aren’t, where each asset is by GPS and so on.

Enterprise Asset Management System (EAMS) Dashboard Example
Defects

In the system, besides some functionalities, there is a defect generation and inspection form. This form has more than 300+ fields and they were filled by users on real papers, because of that there were tons of problems with filling them, managing and searching through them.

Studies have shown that people hate filling up the forms, they prefer to do nothing for hours rather than fill up a form that requires 10 minutes of their attention. The forms need to be simple and intuitive as well no one likes to fill them, more, people just hate filling them and it makes them angry and frustrated. Filling up a form requires a lot of physical and mental resources, especially when there is a form with 300+ fields...

Because of these things we’ve started researching a bit around those fields from multiple points:

As a step to simplify the form, I’ve determined what phases was a defect going through from discovery till it was resolved and documented. It gave us a possibility to divide the form to 3 steps:

  1. Discovery: Phase, when defect is discovered, type is determined and is described.
  2. Fixing the Defect: Phase, when technical guys determine how this is going to be fixed, what kind of materials and human resource its fixing will require and also when this defect is fixed.
  3. Revision and Documentation: Phase where all the previous phase data is gathered and structured, so higher role/rang users can review everything, what has happened from discovery till defect was finally fixed, if everything is okay they can resolve and close the defect and system make a document and saves it in database, but also gives user to download generated document as a PDF.

It’s better, but still not the good, because 100 field on a page is still too much, so...

On the next step, we’ve determined (interviewed managers) which user roles were filling which fields, this made the view much clear, it turned out, that there are 8+ roles of the users which are working on registering and fixing a defect, so it gave us possibility to use wizard in a form and divide it to 8 steps:

  1. Defect Registration: Phase/step when user registers the defect he/she has found, selects which parts where defective and gives some basic description or provides an image.
  2. Investigation: Phase/step where a technicians specialized in this defect type investigates the issue with some standard questions provided by system regarding the defect type and gives more professional description what has happened.
  3. Causes: Phase/step where senior technicians investigate or predict what has/can cause this type of defect, based on the 2nd step investigation.
  4. Recommendation: Phase/step when senior technicians leave some recommendations for other workers how to fix the defect and what to consider when working on the defect (for example: be aware when opening the oil tank cover to avoid burns).
  5. Human Resource: Phase/step where senior technician selects what types (roles) of users and how many of them are needed to fix this defect, plus what time each user will need to fix this issue (also he/she can select specific users as well) and sends a request to the manager to give proper workers to fix the defect. The manager can either approve request or make an offer (for example to offer less people).
  6. Material Resource: Phase/step where workers/technicians select what resources they need to work on this issue and request them from the warehouse manager (this data trends are also used for predicting warehouse needs).
  7. Testing: Phase/step where system based on the previous step datas and some standards generates fields and recommendations for testing is the defect has been totally resolved/fixed.
  8. Revision and Documentation: This step has been left as it was.

Now each step has about ~40 fields instead of 300+, for the first glance it’s an amazing result, but...

I’ve tried to go deeper and to dived these ~40 fields in sub-steps, so user can fill it easily, data can be saved much often to avoid data loss, if system or computer/tablet on the user side has crashed, plus to show progress bars for the step to show how much he/she has left to fill up the step and to evoke emotions which result in positive user experiences.

So I’ve grouped related fields in sub-steps so, that maximum 10-12 fields where in one sub-step and showed progress to the user by sup-steps as well (how many sub-steps are filled and how many are remaining), this also gave us opportunity to validate and save data in background, plus I’ve added some UI animations for the emotional and time saving purposes and here is the result of it:

Notifications

System and user revoked notifications some times can be very similar, also system can send tens of notifications to the user and in some cases user revoked notifications can have quick actions, because of these I’ve made a structure to standardize notifications. Standardized notification can be scanned by user much faster than cluttered one, he/she can understand the point much easier and make an action if needed. When user is onboarded in the system, uploading an image isn’t mandatory, so if user won’t upload a profile image, we’ll use user’s initials on the system color as a profile image.

Enterprise Asset Management System (EAMS) Notifications Example
Calendar

Everything in our reality and especially in the digital world is a subject of the time, so placing events (which was revoked by system or the user) on a calendar is a good thing from the visual representation perspective, plus it gives user and the company good time tracking and productivity management possibility. Because of that we’ve made a calendar module, but because there can be tons of events in the system, they need to be standardized. We’ve written down all the actions in the system which can cause events and I’ve worked on that data and it’s touch points to standardize events. In the end I’ve reduced it into the 4 types of structure, these 4 types can cover all system or user revoked events, plus gave an ability to create some basic events for outside the system if needed and here is the result of it:

Enterprise Asset Management System (EAMS) Calendar Month View Example Enterprise Asset Management System (EAMS) Calendar Day View Example Enterprise Asset Management System (EAMS) Calendar Data Structure Example