diff --git a/public/en/cases/ai-assistant-figma/index.html b/public/en/cases/ai-assistant-figma/index.html index ca775a1..6c897ed 100644 --- a/public/en/cases/ai-assistant-figma/index.html +++ b/public/en/cases/ai-assistant-figma/index.html @@ -5,9 +5,9 @@ - AI assistant — Плагин для Figma — кейс + AI Assistant — Figma Plugin — Case Study - - + - + diff --git a/public/en/cases/ai-platform-primo-rpa-2/index.html b/public/en/cases/ai-platform-primo-rpa-2/index.html index 160a48e..eb40eb5 100644 --- a/public/en/cases/ai-platform-primo-rpa-2/index.html +++ b/public/en/cases/ai-platform-primo-rpa-2/index.html @@ -1,13 +1,13 @@ - - - - - - - AI Server в Primo RPA — кейс (черновик 2) + + + + + + + AI Server in Primo RPA — Case Study (Draft 2) - + - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

Product Design · AI

+

User Interface Development for the Primo RPA AI Server

+

+ Intelligent document
processing platform + and AI agent orchestration +

+ +
+

Overview

+

+ A service was launched within the company that significantly improved the workflow for text recognition models on documents: loading a dataset from company documents, field tagging, model training, and the subsequent use of the model in other products. This approach provided higher recognition quality and met security requirements—data remained within the company’s network. As work on the product progressed, functionality was added to fine-tune the base neural networks for the company’s specific tasks and to work with skills such as summarization, extraction, generation, and other scenarios. +

+

+ I was invited to join the project as a UX/UI designer; prior to that, the developers had been building the interface on their own. As a result of this work, the service’s barrier to entry was lowered—significantly more people could use the product without specialized training in AI and OCR. +

+ +
+ +
+

Before and After

+

+ The service was built using Ant Design on top of React with the Hope UI visual theme for Bootstrap. The company already had several web products and wanted to unify and refresh the user interface, so the development team relied on components from those systems. +

+ +

+ I immersed myself in the product and, together with the team, analyzed all the functionality in detail. +

+ +

+ I mapped out user flows based on current scenarios: these showed the team where confusion arose in the interface and user journeys. Based on this, we redesigned the configuration processes themselves: we automated and hid some functions to reduce the risk of errors and eliminate unnecessary routine tasks. +

+

+ The new approach changed both the perception of the product and the setup process. The interface guides users through the setup steps without disrupting their usual workflows: a fully linear wizard isn’t feasible here—users still need to go back and refine settings to ensure high-quality results. +

+

Questions for the team regarding the current status

+

The answers will help quantify the impact of the implementation with facts and figures.

+
    +
  • Has the number of support requests decreased?
  • +
  • Are users able to complete project setup on their own from start to finish?
  • +
  • Does the new interface allow users to create new types of projects based on existing patterns?
  • +
+
+ +
+

Interface Patterns

+

+ Below are the key areas of the product: how they support learning and model-working scenarios, and how they differ from the previous approach. +

+ +

Field Mapping

+

+ Mapping links document fields to the target data structure. It was important to make the relationship visual and reversible so that users don’t lose context when making edits. +

+
+
+ +
+
Field Mapping in the Interface
+
+ +

Dataset, Training, and Quality Control

+

+ The dataset editor, training launch, and quality screens form a single mental path: data preparation → training → result verification. +

+ +
+ Dataset Editor — Current Version of the Interface +
Dataset Editor—Current Version
+
+
+ Dataset Editor — Previous Version for Comparison +
Previous version of the editor
+
+
+ Model Training Screen Using a Dataset +
Training on a dataset
+
+
+ Quality Control of the Model After Training +
Quality and result verification
+
+ +

Inference in the project

+

+ Special Focus: Running and Monitoring the Model Within the Project: The user must understand the status of the inference run and stay in sync with the rest of the settings. +

+
+ Model inference interface within the project +
Inference in the project
+
+
+
+
+ Inference in the project — full-screen interface + +
+
+ +
+
+
Full vertical screenshot of the inference screen
+
+
+ Previous version of the inference screen in the project +
Previous version of inference
+
+ + + +

Full-Screen Mode and Import

+

+ This isn’t about “long tasks,” but rather about processes in a separate context: some block work on the project until they’re finished, while others run in parallel in a separate window, allowing you to continue configuring project settings. We moved this functionality to a separate window because there were several entry points for these tasks, and a standard modal wasn’t enough—you had to complete a separate process elsewhere and then return to the project settings. This approach reduced the amount of development and testing required. +

+

+ Below are three full-screen canvas options: import in a separate window, panel mode, and the minimalist “zen” mode. +

+
+ A modal window for importing a dataset on a separate screen +
Import in a modal window
+
+
+ Full-screen mode with side panels +
Full-screen mode with panels
+
+
+ Full-screen mode without distracting panels +
Minimal mode without unnecessary chrome
+
+ +

Future Development

+

+ Several major items remained on the roadmap: scenarios related to the LLM (lists, statuses, actions), a step-by-step training wizard with progress tracking and undo functionality, and a full-featured OCR engine with region marking and on-page quality previews. These were not included in the minimum set for the interface’s first production release, but the established patterns should accommodate them without major rework. +

+
+ +
+

Process and Handoff

+

+ Work proceeded through regular synchronization with the development team: mockups, specifications, and a phased handoff to the front end. After I left the project, the team looked for the next designer and structured the onboarding process based on the existing design assets and layout guidelines. +

+ +

Questions for the Next Designer

+
    +
  • What turned out to be unclear during the first two weeks on the project?
  • +
  • Which artifacts and handover guidelines proved most useful?
  • +
  • What had to be redesigned and why.
  • +
  • How would you describe the current state of UX in three sentences?
  • +
+
+ +
+

Conclusion

+

+ The AI Server interface in Primo RPA was transformed from an “engineer-oriented developer interface” into a product with intuitive configuration logic and user guidance. The focus on user flows and routine automation reduced the implementation burden and paved the way for broader adoption within the company and among clients. +

+
+
+
- -
-
-

Product Design · AI

-

Разработка интерфейса для Primo RPA AI Server

-

- Платформа интеллектуальной обработки документов
- и оркестрации ИИ-агентов -

- -
-

Обзор

-

- Внутри компании появился сервис, который заметно улучшил работу с моделями для распознавания текста на документах: загрузка датасета из документов компании, разметка полей, обучение модели и дальнейшее использование модели в других продуктах. Такой подход давал более высокое качество распознавания и соответствовал требованиям безопасности — данные оставались внутри контура компании. Уже в ходе работы в продукте появился функционал дообучения (fine-tuning) базовых нейросетей под задачи компании и работы со скилами: суммаризация, извлечение, генерация и другие сценарии. -

-

- В проект меня пригласили как UX/UI дизайнера: интерфейс до этого собирали разработчики своими силами. В результате работы у сервиса снизился порог входа — продуктом могли пользоваться существенно больше людей без специальной подготовки в области ИИ и OCR. -

- -
- -
-

Было и стало

-

- Сервис был собран на Ant Design под React с визуальной темой Hope UI для Bootstrap. У компании уже было несколько веб-продуктов с задачей унифицировать и освежить интерфейс, поэтому в разработке опирались на компоненты этих систем. -

- -

- Я погрузился в продукт и вместе с командой детально разобрал весь функционал. -

- -

- По текущим сценариям собрал юзерфлоу: они показали команде, где в интерфейсе и в маршрутах пользователя возникает путаница. На этой основе переработали сами процессы настройки: часть функций автоматизировали и спрятали, чтобы снизить риск ошибок и убрать лишнюю рутину. -

-

- Новый подход изменил и восприятие продукта, и процесс настройки. Интерфейс ведёт по этапам настройки, при этом не ломает привычные сценарии: полностью линейный визард здесь невозможен — пользователю всё равно нужно возвращаться назад и уточнять параметры ради качества результата. -

-

Вопросы к команде по текущему состоянию

-

Ответы помогут зафиксировать эффект от внедрения в цифрах и фактах.

-
    -
  • Сократилось ли количество обращений в поддержку.
  • -
  • Получается ли у пользователей самостоятельно пройти настройку проекта от начала до конца.
  • -
  • Позволяет ли новый интерфейс заводить новые типы проектов, опираясь на уже заложенные паттерны.
  • -
-
- -
-

Паттерны интерфейса

-

- Ниже — ключевые зоны продукта: как они поддерживают сценарии обучения и работы с моделью и чем отличаются от прежнего подхода. -

- -

Сопоставление полей (маппинг)

-

- Маппинг связывает поля документа с целевой структурой данных. Важно было сделать связь наглядной и обратимой, чтобы пользователь не терял контекст при правках. -

-
-
- -
-
Сопоставление полей в интерфейсе
-
- -

Датасет, обучение и контроль качества

-

- Редактор датасета, запуск обучения и экраны качества образуют один ментальный путь: подготовка данных → обучение → проверка результата. -

- -
- Редактор датасета — текущая версия интерфейса -
Редактор датасета — текущая версия
-
-
- Редактор датасета — предыдущая версия для сравнения -
Предыдущая версия редактора
-
-
- Экран обучения модели по датасету -
Обучение по датасету
-
-
- Контроль качества модели после обучения -
Качество и проверка результата
-
- -

Inference в проекте

-

- Отдельный фокус — запуск и контроль модели внутри проекта: пользователь должен понимать состояние прогона и не терять связь с остальными настройками. -

-
- Интерфейс inference модели внутри проекта -
Inference в проекте
-
-
-
-
- Inference в проекте — полный экран интерфейса - -
-
- -
-
-
Полный вертикальный кадр экрана inference
-
-
- Предыдущая версия экрана inference в проекте -
Предыдущая версия inference
-
- - - -

Полноэкранный режим и импорт

-

- Речь не о «длинных задачах», а о процессах в отдельном контексте: одни до завершения блокируют работу с проектом, другие идут параллельно в отдельном окне, и при этом можно продолжать настраивать параметры проекта. Функционал вынесли в отдельное окно, потому что точек входа в такие задачи было несколько, а обычной модалки было недостаточно — нужно было пройти отдельный процесс в стороне и затем вернуться к настройкам проекта. Такой подход сократил объём разработки и тестирования. -

-

- Ниже — три варианта полноэкранного холста: импорт в отдельном окне, режим с панелями и минималистичный «zen». -

-
- Модальное окно импорта датасета на отдельном экране -
Импорт в модальном окне
-
-
- Полноэкранный режим с боковыми панелями -
Полноэкранный режим с панелями
-
-
- Полноэкранный режим без отвлекающих панелей -
Минимальный режим без лишнего chrome
-
- -

Дальнейшее развитие

-

- В дорожной карте оставались отдельные крупные куски: сценарии вокруг LLM (списки, статусы, действия), пошаговый мастер обучения с прогрессом и отменой, а также полноценный контур OCR с разметкой регионов и превью качества на странице. Они не входили в минимальный набор для первого промышленного релиза интерфейса, но заложенные паттерны должны их принять без больших переделок. -

-
- -
-

Процесс и передача

-

- Работа шла через регулярные синхронизации с разработкой: макеты, спецификации и поэтапный handoff во фронт. После моего выхода из проекта команда искала следующего дизайнера и выстраивала онбординг по уже оформленным артефактам и правилам компоновки. -

- -

Вопросы следующему дизайнеру

-
    -
  • Что оказалось неочевидным в первые две недели в проекте.
  • -
  • Какие артефакты и правила передачи пригодились больше всего.
  • -
  • Что пришлось пересобрать и по какой причине.
  • -
  • Как в трёх предложениях описать текущее состояние UX.
  • -
-
- -
-

Итог

-

- Интерфейс AI Server в Primo RPA перевели от «инженерного интерфейса разработчиков» к продукту с понятной логикой настройки и сопровождения пользователя. Упор на юзерфлоу и автоматизацию рутины снял часть нагрузки с внедрения и открыл дорогу к более широкому использованию внутри компании и у клиентов. -

-
-
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -1002,7 +1002,7 @@
- +

Contact

@@ -1014,13 +1014,14 @@
- + - - - + + + - - - - + + + + diff --git a/public/en/cases/ai-platform-primo-rpa-v2/index.html b/public/en/cases/ai-platform-primo-rpa-v2/index.html index 65decf5..fff78f9 100644 --- a/public/en/cases/ai-platform-primo-rpa-v2/index.html +++ b/public/en/cases/ai-platform-primo-rpa-v2/index.html @@ -5,9 +5,9 @@ - AI Server в Primo RPA — кейс + AI Server in Primo RPA — Case Study - - + - + diff --git a/public/en/cases/ai-platform-primo-rpa/index.html b/public/en/cases/ai-platform-primo-rpa/index.html index bfa5d43..0f2ee39 100644 --- a/public/en/cases/ai-platform-primo-rpa/index.html +++ b/public/en/cases/ai-platform-primo-rpa/index.html @@ -1,13 +1,13 @@ - - - - - - - AI Server в Primo RPA — кейс + + + + + + + AI Server in Primo RPA — Case Study - + - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

Product Design · AI

+

User Interface Development for the Primo RPA AI Server

+

+ Intelligent document
processing platform + and AI agent orchestration +

+ +
+

Overview

+

+ The AI Server product is deployed on clients’ internal servers. It enables the use of neural networks within the company’s internal network and is configured via a web interface. +

+

+ I was invited to join the project as a UX/UI designer. The product was in the active testing phase; feedback from customers made it clear that the configuration was too complex: only experts and the Primo RPA implementation team could handle it. The complex configuration reduced the product’s appeal and hindered scaling. +

+

+ My task was to simplify the configuration process and lower the barrier to entry, thereby reducing the workload on technical support and the implementation team—so that customers could configure the service themselves to meet their specific needs. +

+ +

+ Below is an in-depth look at the product, examples of completed tasks, and interface patterns. +

+
+ +
+

Overview

+

+ I began by getting to know the team: who was responsible for the product, who was responsible for implementation, and how everything was currently organized. I spoke with configuration experts, categorized key and secondary scenarios, and compiled a visualization of user behavior. I worked closely with the development team to identify areas where the interface could be simplified and the setup process accelerated. +

+ +

+ The product was already in use by customers, so we couldn’t halt development and completely rebuild the interface. I had to decide in what order and which parts to address in the redesign. I incorporated the most significant changes into the current development plan without disrupting the release schedule. +

+

+ I had to plan the interface changes with the framework in mind. At the time, it was + Ant Design on top of React, styled after + Hope UI. +

+

+ I only had to create new components as a last resort; the priority was to reuse the existing library. This is evident in the final screens: the interface is mostly built from ready-made blocks, rather than from scratch. +

+
+ +
+

Completed Tasks

+

+ Interface elements that I redesigned or built almost from scratch. Below are individual tasks from the project that I wanted to showcase in my portfolio—not an overview of the entire product. +

+ +

Main navigation of the service

+

+ The service used a layout common for admin panels: a side menu on the left and content on the right. The screenshot shows that this page structure didn’t make effective use of the available screen space. When you open the project, the navigation for the project sections appears on the left—intermixed with the main navigation—which confuses the user. This situation needed to be fixed. +

+
+ Previous main navigation page for the AI Server service +
Previous Navigation
+
+
+ Updated Main Navigation for the AI Server Service +
Updated navigation
+
+

+ The updated navigation is now more compact and remains familiar to most users. There is significantly more space for content. As you’ll see later, projects will have their own separate navigation that won’t overlap with the main navigation. At the same time, the service’s overall aesthetic has improved. +

+

Navigation Within a Specific Project

+

+ Users retain access to both the navigation within a project and the service’s main navigation. Different project types contain varying numbers of items, and this solution allows for their optimal placement. +

+
+ Navigation within the NLP project and the service's main navigation +
NLP Project
+
+
+ Navigation within an OCR project and the service's main navigation +
OCR project
+
+

+ I’d like to highlight the design of the navigation items. Visually, it subtly suggests that it’s more convenient to go through the setup step by step, but the sections still function as regular tabs: you can switch between them in any order. +

+
+ Secondary navigation for the project with arrow-shaped items +
Shape of navigation items
+
+

Dataset Annotation Editor

+

+ This is the screen where users spend the most time. Annotating fields across hundreds of images is monotonous work, but the quality of the data used to train the model depends on it. The previous editor stood out sharply from the service’s overall style: it looked cluttered and was confusing in places, especially when working with fields. +

+
+ Dataset Editor — Previous Version for Comparison +
Previous version of the dataset editor
+
+

+ I broke down the editor into microscenarios, organized them by priority and how they relate to each other. The team and I discussed how to make the user experience smoother and more intuitive. In the new page structure, I reserved space for new functionality and incorporated the same design patterns used throughout the rest of the service. The editor’s design now aligns with the overall style. +

+
+ Dataset Editor — Current Version of the Interface +
Updated version of the dataset editor
+
+

+ The schematic sketch shows that the page has become symmetrical: almost all the space is devoted to the image being marked up. Actions are grouped by panels—making it easier to find the desired function. +

+
+ Dataset Editor Wireframe — Default Mode +
Frame: Default mode
+
+

+ Added a “Full Screen” mode. Advanced users usually hide unnecessary panels and work with markup using keyboard shortcuts and the bottom panel. The side panels can be collapsed when more space is needed for the image—this is especially important on smaller monitors. +

+ + +

+ The bottom toolbar lets you switch between images and perform quick actions. +

+
+ The Dataset Editor's Main Toolbar +
Bottom toolbar
+
+ +

Model training configuration cards

+

+ After labeling the dataset, the model can be fine-tuned. As usual, our team broke down all user actions for this task. We created several layout options for this page; the one with a card feed turned out to be the most successful. +

+
+ Overview of Training Configuration Cards in the Project +
View of the Model Training section
+
+

+ At the top of the feed, the user sees a training configuration card: it displays the annotation results for the active dataset, allows the user to set parameters, and initiates fine-tuning. +

+
+ Training Configuration Card +
Training Configuration Card
+
+

+ The card includes a separate section with an assessment of the dataset’s annotation quality and a section with parameters to configure before starting training. +

+ +

+ A separate card will appear below for each process that is started. You can run multiple processes with different parameters and then compare which configuration performed better. +

+
+ Model Learning Process Card +
Training Process Card
+
+

+ Within the card, information and actions are organized into logical blocks. We considered various layout options and ultimately settled on a scheme that proved to be more user-friendly than the others. +

+
+ Learning Process Card Wireframe +
Wireframe of the Learning Process Card
+
+

+ The cards can be collapsed. For convenience, the name and status are displayed in the header. +

+
+ Collapsed Training Settings Card +
Collapsed Card
+
+

+ After refining these cards, we identified patterns that were later used in other sections of the product. This makes it easier to maintain a consistent style across the interface. +

+ +

Field Parameter Configuration

+

+ On one of the pages in the project section, we needed to allow users to configure unique field parameters for a dataset. The editor required a large area for an image (a scanned document), and there could be dozens of fields, each with its own dependent parameters and types. +

+

+ The video shows the prototype of the finished solution in action. +

+
+
+ +
+
Field mapping in the interface
+
+

+ The interface turned out to be compact and clean. The mechanics aren’t immediately obvious, but after a brief learning curve, users find it comfortable to use. +

+

+ Developing the editor proved to be an interesting and challenging task for me: there were many drafts and different behavior options. In the end, we settled on a version that met all the requirements my team and I had defined. +

+ +

Modal windows on a separate screen

+

+ In the service, some tasks need to be performed alongside other work. For such scenarios, we implemented the following: a modal window opens on a separate page. +

+
+ A modal window for importing a dataset on a separate screen +
Importing a dataset in a modal window
+
+

+ A placeholder is displayed on the project page: the process is in progress, with a button next to it to navigate to it. +

+
+ Importing a dataset within a project +
Importing a dataset within a project
+
+

+ These placeholders appear in several sections of the project—depending on whether you can work with that section while the task is active. +

+ +

+ This approach turned out to be technically simpler than selectively disabling buttons on individual pages. +

+ +
+ +
+

Handoff to Development

+

+ Once a week, the team met to discuss the design. The calls were long but productive. We created a weekly list of design tasks, adjusting priorities and deadlines to align with release plans. +

+

+ I created the designs in Figma and sent links to the finished user flows to the development team. We didn’t set up a separate design system or UI kit—the product already had a ready-made framework. +

+

+ From time to time, I would have one-on-one calls with the front-end developer to clarify details about the mockups or explain how the interface should behave. After the layout was completed, I provided feedback on revisions to ensure the result matched the intended behavior and appearance of the interface. +

+
+ +
+

Change in Designers

+

+ I managed this project alongside others, so I had to balance my workload. The company hired a new designer—my task was to bring her up to speed and oversee the results of her work on each task. Once she was up to speed, responsibility for the project shifted entirely to her. +

+
+ +
+

Result

+

+ The Primo RPA AI Server interface now has a consistent look and feel. It is user-friendly even for those who are not yet experts in AI. The interface is designed to accommodate future changes, allowing for the addition of new features without major overhauls. +

+
+
+
- -
-
-

Product Design · AI

-

Разработка интерфейса для Primo RPA AI Server

-

- Платформа интеллектуальной обработки документов
- и оркестрации ИИ-агентов -

- -
-

Обзор

-

- Продукт AI Server разворачивается на внутренних серверах клиентов. Он позволяет использовать нейросети во внутреннем контуре компании и настраивается через веб-интерфейс. -

-

- Меня пригласили на проект как UX/UI-дизайнера. Продукт был в активной стадии тестирования; по обратной связи от клиентов стало ясно, что настройка слишком сложна: с ней справляются только эксперты и команда внедрения Primo RPA. Сложная настройка снижала привлекательность продукта и тормозила масштабирование. -

-

- Передо мной стояла задача упростить настройку и снизить порог входа, разгрузить техподдержку и отдел внедрения — чтобы клиенты могли самостоятельно настраивать сервис под свои задачи. -

- -

- Ниже — погружение в продукт, примеры выполненных задач и паттерны интерфейса. -

-
- -
-

Погружение

-

- Работу начал со знакомства с командой: кто за продукт, кто за внедрение, как всё устроено сейчас. Пообщался с экспертами по настройке, разделил ключевые и вспомогательные сценарии, собрал визуализацию поведения пользователя. Плотно работал с разработкой и искал, где интерфейс можно упростить и ускорить настройку. -

- -

- Продукт уже использовали клиенты, поэтому нельзя было остановить разработку и пересобрать интерфейс целиком. Пришлось решать, в каком порядке и какие части трогать в редизайне. Самые крупные изменения встраивал в текущий план разработки, без отрыва от релизов. -

-

- Прорабатывать изменения в интерфейсе нужно было с учётом используемого фреймворка. На тот момент это был - Ant Design под React со стилизацией под - Hope UI. -

-

- Новые компоненты приходилось придумывать только в крайних случаях, в приоритете было переиспользовать уже существующую библиотеку. По итоговым экранам это видно: интерфейс в основном собран из готовых блоков, а не с нуля. -

-
- -
-

Выполненные задачи

-

- Фрагменты интерфейса, которые я переработал или собрал почти с нуля. Ниже — отдельные задачи из проекта, которые хотелось показать в портфолио, а не обзор всего продукта. -

- -

Главная навигация сервиса

-

- В сервисе стояла привычная для админок схема: слева боковое меню, справа контент. На скриншоте видно, что такая структура страницы неэффективно использовала доступное рабочее пространство на экране. Если открыть проект, слева окажется навигация по разделам проекта — вперемешку с главной, и это путает пользователя. Эту ситуацию нужно было исправить. -

-
- Предыдущая главная навигация сервиса AI Server -
Предыдущая навигация
-
-
- Обновлённая главная навигация сервиса AI Server -
Обновлённая навигация
-
-

- Обновлённая навигация стала компактной и всё так же привычна большинству пользователей. Для контентной части пространства стало значительно больше. Как будет видно дальше, у проектов внутри появится отдельная навигация, которая не будет перекрывать главную. При этом улучшилась эстетическая составляющая дизайна сервиса. -

-

Навигация внутри конкретного проекта

-

- У пользователя остаётся доступ и к навигации внутри проекта, и к главной навигации сервиса. Разные типы проекта содержат разное количество пунктов, и такое решение позволяет удачно их разместить. -

-
- Навигация внутри NLP-проекта и главная навигация сервиса -
NLP-проект
-
-
- Навигация внутри OCR-проекта и главная навигация сервиса -
OCR-проект
-
-

- Отдельно отмечу идею с формой пунктов навигации. По виду она мягко подсказывает, что настройку удобнее проходить по шагам, но разделы по-прежнему работают как обычные табы: можно переключаться в любом порядке. -

-
- Вторичная навигация проекта со стрелочной формой пунктов -
Форма пунктов навигации
-
-

Редактор разметки датасета

-

- На этом экране проводят больше всего времени. Разметка полей на сотнях изображений — монотонная работа, но от неё зависит, насколько качественными будут данные для обучения модели. Прежний редактор сильно выбивался из общего стиля сервиса: выглядел перегруженно и местами сбивал с толку, особенно в работе с полями. -

-
- Редактор датасета — предыдущая версия для сравнения -
Предыдущая версия редактора датасета
-
-

- Я разобрал редактор на микросценарии, выстроил их по приоритету и связке между собой. С командой обсудили, как сделать поведение пользователя плавнее и понятнее. В новой структуре страницы заложил место под новый функционал и те же паттерны, что в остальном сервисе. Дизайн редактора привёл к общей стилистике. -

-
- Редактор датасета — текущая версия интерфейса -
Обновлённая версия редактора датасета
-
-

- На схематическом наброске видно, что страница стала симметричной: почти всё пространство уходит на размечаемое изображение. Действия сгруппированы по панелям — нужную функцию проще найти. -

-
- Вайрфрейм редактора датасета — режим по умолчанию -
Каркас: режим по умолчанию
-
-

- Добавил режим «Во весь экран». Продвинутые пользователи обычно прячут лишние панели и работают с разметкой через горячие клавиши и нижнюю панель. Боковые панели можно свернуть, когда нужно больше места под изображение — на небольших мониторах это особенно имеет значение. -

- - -

- Нижняя панель позволяет переключаться между изображениями и выполнять быстрые действия. -

-
- Главная панель инструментов редактора датасета -
Нижняя панель инструментов
-
- -

Карточки настройки обучения модели

-

- После разметки датасета модель можно дообучить (fine-tuning). Мы с командой, как обычно, разобрали все действия пользователя для этой задачи. Сделали несколько вариантов компоновки этой страницы; самым удачным оказался вариант с лентой из карточек. -

-
- Обзор карточек настройки обучения в проекте -
Вид раздела обучения моделей
-
-

- В начале ленты у пользователя карточка с настройкой обучения: через неё видно результат разметки активного датасета, задают параметры и запускают fine-tuning. -

-
- Карточка настройки обучения -
Карточка настройки обучения
-
-

- В карточке отдельный блок с оценкой качества разметки датасета и блок с параметрами перед запуском обучения. -

- -

- Под каждый запущенный процесс ниже появится отдельная карточка. Можно завести несколько процессов с разными параметрами и потом сравнить, какая конфигурация сработала лучше. -

-
- Карточка процесса обучения модели -
Карточка процесса обучения
-
-

- Внутри карточки информация и действия разнесены по логическим блокам. Мы рассматривали разные варианты компоновки и в итоге зафиксировали схему, которая оказалась удобнее остальных. -

-
- Вайрфрейм карточки процесса обучения -
Вайрфрейм карточки процесса обучения
-
-

- Карточки могут быть свёрнуты. Для удобства в шапку вынесены название и статус. -

-
- Свёрнутая карточка настройки обучения -
Свёрнутая карточка
-
-

- После проработки этих карточек появились паттерны, которые потом использовались в других разделах продукта. Так проще держать интерфейс в едином стиле. -

- -

Настройка параметров полей

-

- На одной из страниц раздела проекта нужно было дать возможность настроить уникальные параметры полей для датасета. Редактору требовалась большая область под изображение (скан документа), могло быть десятки полей, у каждого — свои зависимые параметры и типы. -

-

- На видео — работа прототипа готового решения. -

-
-
- -
-
Сопоставление полей в интерфейсе
-
-

- Интерфейс получился компактным и лаконичным. Механика не считывается с первого взгляда, но после короткого обучения пользователю в нём комфортно. -

-

- Редактор для меня оказался интересной и сложной задачей: было много черновиков и вариантов поведения. В финале остался вариант, который закрывал все требования, которые мы с командой сформулировали. -

- -

Модальные окна на отдельном экране

-

- В сервисе часть задач нужно выполнять параллельно с остальной работой. Для таких сценариев сделали так: модальное окно открывается на отдельной странице. -

-
- Модальное окно импорта датасета на отдельном экране -
Импорт датасета в модальном окне
-
-

- На странице проекта отображается заглушка: процесс идёт, рядом кнопка перехода к нему. -

-
- Импорт датасета внутри проекта -
Импорт датасета внутри проекта
-
-

- Такие заглушки есть в нескольких разделах проекта — в зависимости от того, можно ли с ним работать, пока задача активна. -

- -

- Такой вариант оказался технически проще, чем точечно блокировать кнопки на отдельных страницах. -

- -
- -
-

Передача в разработку

-

- Раз в неделю команда собиралась на обсуждение дизайна. Созвоны были длительными, но продуктивными. На неделю формировали список задач для дизайна, приоритеты и сроки подстраивали под планы релизов. -

-

- Я делал дизайн в Figma, в разработку передавал ссылки на готовые юзерфлоу. Отдельную дизайн-систему или UI-kit не заводили: в продукте уже был готовый фреймворк. -

-

- Время от времени созванивался с верстальщиком тет-а-тет, если нужно уточнить детали по макетам или объяснить поведение интерфейса. После вёрстки давал фидбэк на правки, чтобы результат не отличался от задуманного поведения и вида интерфейса. -

-
- -
-

Смена дизайнера

-

- Проект вёл параллельно с другими, нагрузку приходилось распределять. В компанию наняли нового дизайнера — моя задача была ввести её в курс дела и курировать результат по задачам. После адаптации работа над проектом полностью перешла под её ответственность. -

-
- -
-

Итог

-

- Интерфейс Primo RPA AI Server стал выглядеть консистентно. С ним могут работать пользователи, которые ещё не эксперты в области ИИ. Для будущих изменений в интерфейсе заложена возможность наращивать функционал без больших переделок. -

-
-
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -1166,7 +1166,7 @@
- +

Contact

@@ -1178,13 +1178,14 @@
- + - - - + + + - - - - - + + + + + diff --git a/public/en/cases/card-columns-obsidian/index.html b/public/en/cases/card-columns-obsidian/index.html index e2ed48a..3e2cab3 100644 --- a/public/en/cases/card-columns-obsidian/index.html +++ b/public/en/cases/card-columns-obsidian/index.html @@ -5,9 +5,9 @@ - Card Columns, плагин для Obsidian Bases: кейс + Card Columns, a plugin for Obsidian Bases: a case study - - + - + diff --git a/public/en/cases/design-system/index.html b/public/en/cases/design-system/index.html index b3e410e..0b1de5c 100644 --- a/public/en/cases/design-system/index.html +++ b/public/en/cases/design-system/index.html @@ -1,13 +1,13 @@ - - - - - - - Design System — портфолио + + + + + + + Design System — Portfolio - - - - - + + + + +
- +
- -
-
- - -
- - - -
-
- -
- - -
-
-

Документация · UI

-

Design System

-

Токены, типографика, сетка, компоненты и блоки лонгрида кейса

-

- Переключайте тему, акцент и шрифт через плавающую панель справа. При глобальных правках стилей (токены, - компоненты, блоки лонгрида) обновляйте и эту страницу — живой каталог UI проекта. -

- - - -

Цвета

-

- Акцент и «холод/тепло» всего UI задаются тремя числами в модели HSL (Hue — оттенок, - Saturation — насыщенность, Lightness — светлота) на <html>. Из них собирается - --accent и производные токены; нейтральные фоны слегка подмешивают тот же оттенок - (--neutral-accent-tint). Светлая/тёмная тема — data-theme, mesh — - data-mesh-bg. Меняется в FAB справа. -

-

Что такое --theme-h, --theme-s, --theme-l

- -

- В CSS это выглядит так: - --accent: hsl(var(--theme-h) calc(var(--theme-s) * 1%) calc(var(--theme-l) * 1%)). - Значения пишутся в localStorage (siteThemeV1) и подставляются inline-скриптом в - head, чтобы не было вспышки «чужого» цвета при загрузке. -

-
-
-
- --bg -
-
-
- --bg-elevated -
-
-
- --surface -
-
-
- --text -
-
-
- --text-muted -
-
-
- --line -
-
-
- --accent -
-
-
- --accent-text -
-
-
- --accent-soft -
-
-

- Дополнительно: квадратичные оттенки mesh — --accent-square-2 … 4; они зависят от hue. -

- -

Шрифты

-

- Пара шрифтов — data-font на <html> (FAB «Типографика»): задаёт - --font-accent (заголовки) и --font (проза). Шкала в таблицах: класс, пример, назначение. -

-

Семейства

-
- - - - - - - - - - - - - - - - - - - - - - - - - -
data-fontСтекГде
merriweatherMerriweather + AliceПара по умолчанию; Alice — основной текст, Merriweather — акцентные заголовки
monoSource Code Pro + PT MonoМоноширинная пара
geologicaGeologica + PT SansГротеск + нейтральная проза
-
- -

Типографическая шкала

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
КлассПримерНазначение
.hero__eyebrow

Подпись секции

Hero, ввод кейса
.hero__title -

- Display заголовок -

-
H1 главной; на DS уменьшен для колонки
.section__title

Секция

«Навыки», «Портфолио», контакты; основной шрифт, без капса
.case-page__h1

Заголовок страницы

H1 кейса / Design System
.case-page__sub

Лид под заголовком

Подзаголовок под H1
.section__prose

Основной текст абзаца.

Проза, списки, ссылки в статье
h2 в .case-article

Подсекция H2

Разделы лонгрида (как «Цвета»)
h3 в .case-article

Подсекция H3

Подразделы внутри H2; отступы в main.css: сверху 3.25rem, снизу 1.5rem, после figure 4rem, h3+h3 3.5rem
-
- -

Ритм и код

-

Пример ритма:

- -
    -
  1. нумерованный пункт;
  2. -
-

Инлайн code и блок:

-
--font: "Alice", system-ui, serif;
---font-accent: "Merriweather", var(--font);
-

- Заголовки используют clamp() — масштаб от вьюпорта; подробнее в разделе «Сетка». -

- -

Сетка и адаптив

-

- Отдельной 12-колоночной сетки нет: full-bleed layout с боковыми полями - --space и локальными CSS Grid внутри секций. Контентная колонка DS и кейсов — - .case-article (max-width 48rem). -

- -

Базовый каркас

- - -

Брейкпоинты

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ОтЧто меняется
860px.hero__grid → 2 колонки 1.15fr 0.85fr
760px / 1180px.projects-carousel: --projects-visible 1 → 2 → 3 карточки
720px.skills-category__grid → 2 колонки
1024pxНавыки: 6-колоночная мозаика (grid-column: span …)
560px / 1024px.contact-grid → 2 → 4 колонки
48rem / 28remГалерея кейса: ≤2 col → 1 col
640pxcase-media-gallery--wide схлопывается в ширину колонки
-
- -

Hero: одна → две колонки

-

Схема .hero__grid (сжато до 860px):

- - -

Контакты: 1 → 2 → 4

-

Демо .contact-grid (плейсхолдеры, без переходов):

- -

- Навыки: мозаика на широком экране — см. - главную, #skills. Портфолио: карусель на - 100vw с --projects-card-width и JS-прокруткой — на главной - #projects. -

- -

Wide в кейсах

-

- .case-media--wide, .case-media-gallery--wide и .case-callout шире - колонки статьи: min(100vw − 2×padding, content + 8rem), с полями --space. На узком - экране (до 640px) wide схлопывается в ширину колонки. Кадры с data-image-viewer — обводка и hover - как у .case-video-shell (живые примеры — демо элементов кейса). Подпись под видео — - figcaption по центру колонки. -

- -

Типографика и motion

-

- Fluid type: clamp() на .hero__title, .section__title, - .case-page__h1. Скругления (data-radius) сетку не меняют. Для длинных скринов и - анимаций учитывается prefers-reduced-motion: reduce. -

- -

Компоненты

-

Живые примеры; оболочка (шапка, FAB, футер, cookie) уже подключена на этой странице.

- -

Кнопки

- -

.btn .btn--primary | secondary | ghost · .btn--flat | raised · .btn__icon

- -

FAB-кнопки

-

- Плавающие кнопки в правом нижнем углу (.fab-stack). Иконка-only и с текстовой подписью. -

-
- - - -
-

.fab .fab--primary | secondary · .fab--label (с текстом) · .fab-primary__ico · .fab__label

- -

Теги

- -

.hero__tags / .hero__tag

- -

.portfolio-card__tags / .portfolio-card__tag

- -

Карточка портфолио

- -

.portfolio-card и дочерние BEM-классы

- -

Заглушка при загрузке изображений

-

- Пока img ещё не загрузился, initImageLoadPlaceholder вешает - .is-img-loading на картинку и .has-img-loading на обёртку. Слой фона — - ::before, один блеск слева направо — ::after (img-ph-shine-sweep). - Иконки, SVG и мелкие картинки до 40px пропускаются; - отключить точечно: data-no-img-placeholder. Ниже — зафиксированное демо (на сайте классы снимаются - после load). -

- -

.has-img-loading · .is-img-loading · .img-ph-demo (демо заглушки)

- -

TUI braille-спиннер

-

- Загрузка тяжёлых изображений в просмотрщике (.case-image-viewer) показывается - моноширинным braille-спиннером — как в TUI. Чистый CSS, без JS: 10 кадров переключаются - через steps()-анимацию. Переиспользуемый класс .tui-spinner - (цвет — --accent, шрифт — системный mono). -

-
- ⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏ - ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ -
-

.tui-spinner · кадры: ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ · prefers-reduced-motion показывает ⠋

- -

Карточка навыка

-
-

skill-task-card__task — формулировка задачи от бизнеса.

-
-

skill-task-card__solution — первый подход к решению.

-

Второй пункт в зоне решений.

-
-
-

.skill-task-card__task · __solutions · __solution

- -

Callout

-

- Акцентный блок лонгрида: шире колонки (как wide-медиа), текст в .case-callout__content чуть - крупнее основного абзаца. -

- -

.case-callout · .case-callout__emoji · .case-callout__emoji--pulse · .case-callout__content

- -

Контактные карточки

-

- На главной в сетке четыре карточки (1→2→4 колонки). Здесь два примера — сетка принудительно в две колонки. -

- -

.contact-card--link · --action · --brand-*

- -

Секция с фоном

-

- На главной полоса .section--surface визуально читается через mesh; в кейсах фон страницы - ровный — ниже компактное демо с background: var(--surface). -

-
-
-

section__title

-

Фрагмент .section.section--surface + .section__inner

-
-
-

.section · .section--surface · .section--tight · .section__inner

- -

Разделители

-

- Горизонтальные разделители: линия или просто воздух (отступ). Модификаторы --line, --air, --air-lg. -

-
-
-
-
-
-

.sep · .sep--line · .sep--air · .sep--air-lg

- -

Блоки

-
-

- Разметка лонгрида кейса: медиа и галереи, карточки ссылок, видео, callout, wide-блоки и прочие partials. - Живой эталон со всеми вариантами — на отдельной странице; оттуда копируют куски при сборке нового кейса. -

-

- Демо элементов кейса -

-
- -

Активность

-
-

- На главной в секции #mini-projects карточки mp-card в masonry-сетке. Типы, клетки и живая - раскладка вынесены на отдельную страницу. -

-

- Каталог карточек активности -

-
-
-
- + +
+
+ + +
+ + + +
+
+ +
+ + +
+
+

Documentation · UI

+

Design System

+

Tokens, typography, grid, components, and longgrid blocks

+

+ Switch between themes, accents, and fonts using the floating panel on the right. When making global style changes (tokens, + components, longgrid blocks), be sure to update this page as well—it’s the project’s live UI catalog. +

+ + + +

Colors

+

+ The accent and “cool/warm” tones of the entire UI are defined by three numbers in the HSL model (Hue, + Saturation, Lightness) at <html>. From these, + --accent and derived tokens; neutral backgrounds are slightly tinted with the same hue + (--neutral-accent-tint). Light/dark theme — data-theme, mesh — + data-mesh-bg. Can be changed via the FAB on the right. +

+

What is --theme-h, --theme-s, --theme-l

+ +

+ In CSS, it looks like this: + --accent: hsl(var(--theme-h) calc(var(--theme-s) * 1%) calc(var(--theme-l) * 1%)). + Values are written in localStorage (siteThemeV1) and are inserted by an inline script into + headto prevent a “foreign” color from flashing during loading. +

+
+
+
+ --bg +
+
+
+ --bg-elevated +
+
+
+ --surface +
+
+
+ --text +
+
+
+ --text-muted +
+
+
+ --line +
+
+
+ --accent +
+
+
+ --accent-text +
+
+
+ --accent-soft +
+
+

+ Additionally: quadratic mesh shades — --accent-square-2 … 4; they depend on hue. +

+ +

Fonts

+

+ A pair of fonts — data-font on <html> (FAB “Typography”): sets + --font-accent (headings) and --font (body text). Scale in tables: class, example, purpose. +

+

Font families

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
data-fontStackWhere
merriweatherMerriweather + AliceDefault pair; Alice—body text, Merriweather—emphasized headings
monoSource Code Pro + PT MonoMonospace pair
geologicaGeologica + PT SansSans-serif + neutral body text
+
+ +

Typographic scale

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassExamplePurpose
.hero__eyebrow

Section caption

Hero, case input
.hero__title +

+ Display main heading +

+
H1 for the main page; reduced on DS for the column
.section__title

Section

“Skills,” “Portfolio,” contacts; main font, no caps
.case-page__h1

Page title

H1 for case studies / Design System
.case-page__sub

Lead text under the heading

Subheading below H1
.section__prose

Main paragraph text.

Prose, lists, and links in the article
h2 in .case-article

H2 subsection

Long-form sections (such as “Colors”)
h3 in .case-article

H3 subsection

Subsections within H2; margins in main.css: 3.25rem top, 1.5rem bottom, after figure 4rem, h3+h3 3.5rem
+
+ +

Rhythm and Code

+

Rhythm example:

+ +
    +
  1. numbered item;
  2. +
+

Inline code and block:

+
--font: "Alice", system-ui, serif;
+--font-accent: "Merriweather", var(--font);
+

+ Headings use clamp() — scale relative to the viewport; see the “Grid” section for more details. +

+ +

Grid and Responsive

+

+ There is no separate 12-column grid: a full-bleed layout with side margins + --space and local CSS Grid within sections. The content column for DS and case studies — + .case-article (max-width 48rem). +

+ +

Basic framework

+ + +

Breakpoints

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FromWhat Changes
860px.hero__grid → 2 columns 1.15fr 0.85fr
760px / 1180px.projects-carousel: --projects-visible 1 → 2 → 3 cards
720px.skills-category__grid → 2 columns
1024pxSkills: 6-column mosaic (grid-column: span …)
560px / 1024px.contact-grid → 2 → 4 columns
48rem / 28remCase gallery: ≤2 col → 1 col
640pxcase-media-gallery--wide collapses to the width of a column
+
+ +

Hero: one → two columns

+

Layout .hero__grid (compressed to 860px):

+ + +

Contacts: 1 → 2 → 4

+

Demo .contact-grid (placeholders, no transitions):

+ +

+ Skills: mosaic layout on wide screens—see + the homepage, #skills. Portfolio: carousel on + 100vw with --projects-card-width and JS scrolling — on the homepage + #projects. +

+ +

Wide in case studies

+

+ .case-media--wide, .case-media-gallery--wide and .case-callout wider + article columns: min(100vw − 2×padding, content + 8rem), with margins --space. On a narrow screen (up to 640px), "wide" collapses to the width of the column. Images with data-image-viewer — the outline and hover effects + are the same as .case-video-shell (live examples — case study element demo). The caption below the video is + figcaption centered in the column. +

+ +

Typography and Motion

+

+ Fluid type: clamp() on .hero__title, .section__title, + .case-page__h1. Rounded corners (data-radius) do not change the grid. For long screenshots and + animations, the prefers-reduced-motion: reduce. +

+ +

Components

+

Live examples; the shell (header, FAB, footer, cookie) is already integrated on this page.

+ +

Buttons

+ +

.btn .btn--primary | secondary | ghost · .btn--flat | raised · .btn__icon

+ +

FAB buttons

+

+ Floating buttons in the lower-right corner (.fab-stack). Icon-only and with a text label. +

+
+ + + +
+

.fab .fab--primary | secondary · .fab--label (with text) · .fab-primary__ico · .fab__label

+ +

Tags

+ +

.hero__tags / .hero__tag

+ +

.portfolio-card__tags / .portfolio-card__tag

+ +

Portfolio Card

+ +

.portfolio-card and child BEM classes

+ +

Placeholder while images are loading

+

+ While img hasn't loaded yet, initImageLoadPlaceholder it + .is-img-loading on the image and .has-img-loading the wrapper. The background layer is + ::before, a single glow from left to right— ::after (img-ph-shine-sweep). + Icons, SVGs, and small images up to 40px are skipped; + disable selectively: data-no-img-placeholder. Below is a fixed demo (on the website, the classes are removed + after load). +

+ +

.has-img-loading · .is-img-loading · .img-ph-demo (placeholder demo)

+ +

TUI Braille spinner

+

+ Loading large images in the viewer (.case-image-viewer) is indicated by a monospaced Braille spinner—just like in TUI. Pure CSS, no JS: 10 frames cycle through an animation. Reusable class: steps()an animation. Reusable class .tui-spinner + (color — --accent, font—system mono). +

+
+ ⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏ + ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ +
+

.tui-spinner · frames: ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ · prefers-reduced-motion displays ⠋

+ +

Skill card

+
+

skill-task-card__task — the task description provided by the business.

+
+

skill-task-card__solution — the first approach to the solution.

+

The second item in the solutions section.

+
+
+

.skill-task-card__task · __solutions · __solution

+ +

Callout

+

+ Longread accent block: wider than the column (like wide media), text .case-callout__content slightly + larger than the main paragraph. +

+ +

.case-callout · .case-callout__emoji · .case-callout__emoji--pulse · .case-callout__content

+ +

Contact Cards

+

+ On the home page, there are four cards in a grid (1→2→4 columns). Here are two examples—the grid is forced into two columns. +

+ +

.contact-card--link · --action · --brand-*

+ +

Section with a background

+

+ On the homepage, the strip .section--surface is visually presented using mesh; in other cases, the page background is + solid—see the compact demo below with background: var(--surface). +

+
+
+

section__title

+

Snippet: .section.section--surface + .section__inner

+
+
+

.section · .section--surface · .section--tight · .section__inner

+ +

Separators

+

+ Horizontal separators: a line or simply white space (indentation). Modifiers --line, --air, --air-lg. +

+
+
+
+
+
+

.sep · .sep--line · .sep--air · .sep--air-lg

+ +

Blocks

+
+

+ Longgrid case layout: media and galleries, link cards, videos, callouts, wide blocks, and other partials. + A live example with all variations is available on a separate page; use it to copy sections when building a new case. +

+

+ Case element demo +

+
+ +

Activity

+
+

+ On the homepage in the section #mini-projects card mp-card section on the homepage in a masonry grid. Types, cells, and the live + layout are on a separate page. +

+

+ Activity Card Catalog +

+
+
+
+ - - - + + + - - - - + + + + diff --git a/public/en/cases/lunacy/index.html b/public/en/cases/lunacy/index.html index 4942a79..7d9ad8b 100644 --- a/public/en/cases/lunacy/index.html +++ b/public/en/cases/lunacy/index.html @@ -1,13 +1,13 @@ - - - - - - - Lunacy — кейс + + + + + + + Lunacy — Case Study - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

Icons8 · desktop

+

Lunacy Graphic Editor

+

+ Work on the Lunacy interface as part of the Icons8 team: user flow, prototypes of complex scenarios, refinement of functionality and + visual logic. Below are screenshots from the process (the order of the screenshots is based on the filenames). +

+

+ Product: icons8.com/lunacy +

+ +

Overview

+

General view of the application—the workspace with an open document, toolbars, and the canvas. This screen demonstrates Lunacy’s basic layout: the left panel shows layers, the right panel shows object properties, and the top bar displays the context bar with the current tool. This serves as the starting point for the rest of the materials on the page.

+
+ Lunacy App Review +
Overview of the Lunacy window.
+
+

Next are individual scenarios and interface iterations, presented in the order that makes the most sense in terms of context and file names.

+ +

Blob: Settings on the Canvas

+

Working with a blob in the context of the canvas is a separate scenario, prior to the analysis of the panel across versions.

+
+ Blob Settings on Canvas +
blob_settings_on_canvas
+
+

The settings panel for these tasks evolved through a series of mockups from v1 to v9—they’re compiled in the grid below.

+ +

Components and Comparison

+

Comparison of components and the update indicator in the panel.

+
+ Component Comparison Dialog Box +
compare_components_modal_window
+
+
+ Component Update Indicator in the Panel +
components_update_indicator_location_panel
+
+

Two related screens: searching for discrepancies and displaying update status next to the panel navigation.

+ +

Prototype in the Panel

+

Creating a prototype on the canvas and panel states for prototype mode.

+
+ Modal Window: Create a Prototype on Canvas +
modal_window_for_prototype_create_on_canvas
+
+
+ Modal Window: Prototype Panel States +
modal_window_for_prototype_panel_states
+
+

Both screenshots show how the prototype is linked to the canvas and to a set of dashboard states.

+ +

Shadow Pro: Settings

+

Shadow Pro block: panel, ideas, modals with auto-open and auto-close.

+
+ Shadow Pro: Settings Panel +
shadow_pro_settings_panel
+
+
+ Shadow Pro: Ideas +
shadow_pro_settings_ideas
+
+
+ Shadow Pro: Mods, Auto Enabled +
shadow_pro_settings_modal_auto_on
+
+
+ Shadow Pro: Mod Mode, Auto Off +
shadow_pro_settings_modal_auto-off
+
+

Four consecutive frames show the development of a single subproject: from the panel and sketches to refining the behavior in modals.

+ +

Blob settings panel: versions v1–v9

+

+ Panel iterations by filename blob_settings_panel_v1 … v9. Grid based on text width, three columns on a + wide screen; as the window narrows, the number of columns decreases automatically. +

+ +

The grid is convenient for step-by-step comparisons; for details, clicking on a cell opens a full-screen view.

+ +

Slider: versions v1–v18 and frame 14

+

+ Ordered by name: slider_v1 … slider_v13, then slider_14 (in the asset without a suffix v), + then slider_v15 … slider_v18. +

+ +

This sequence is useful for analyzing the evolution of the control: from early layouts to final states.

+ +

Sliders: general frame

+

A summary screen for sliders—following the version series.

+
+ All Sliders: Overview +
sliders_all_set
+
+

This concludes the section on sliders: context—how multiple controls coexist on a single screen.

+
+
- -
-
-

Icons8 · desktop

-

Графический редактор Lunacy

-

- Работа над интерфейсом Lunacy в команде Icons8: user flow, прототипы сложных сценариев, доработка функциональности и - визуальной логики. Ниже — фрагменты экранов из процесса (порядок кадров ориентирован на имена файлов). -

-

- Продукт: icons8.com/lunacy -

- -

Обзор

-

Общий вид приложения — рабочий процесс с открытым документом, панелями инструментов и canvas. Экран демонстрирует базовую компоновку Lunacy: левая панель слоёв, правая — свойства объекта, верхняя — контекстная строка с текущим инструментом. Отправная точка для остальных материалов на странице.

-
- Обзор приложения Lunacy -
Обзор окна Lunacy.
-
-

Дальше — отдельные сценарии и итерации интерфейса в том порядке, в каком удобнее читать по смыслу и по именам файлов.

- -

Blob: настройки на холсте

-

Работа с blob в контексте холста — отдельный сценарий до разборов панели по версиям.

-
- Настройки blob на холсте -
blob_settings_on_canvas
-
-

Панель настроек для тех же задач развивалась серией макетов v1–v9 — они собраны в сетку ниже.

- -

Компоненты и сравнение

-

Сравнение компонентов и индикатор обновлений в панели.

-
- Модальное окно сравнения компонентов -
compare_components_modal_window
-
-
- Индикатор обновления компонентов в панели -
components_update_indicator_location_panel
-
-

Два связанных экрана: поиск расхождений и отображение статуса обновлений рядом с навигацией по панели.

- -

Прототип в панели

-

Создание прототипа на холсте и состояния панели для режима прототипа.

-
- Модальное окно: создать прототип на холсте -
modal_window_for_prototype_create_on_canvas
-
-
- Модальное окно: состояния панели прототипа -
modal_window_for_prototype_panel_states
-
-

Оба кадра — про увязку прототипа с холстом и с набором состояний панели.

- -

Shadow Pro: настройки

-

Блок Shadow Pro: панель, идеи, модалки с авто-включением и выключением.

-
- Shadow Pro: панель настроек -
shadow_pro_settings_panel
-
-
- Shadow Pro: идеи -
shadow_pro_settings_ideas
-
-
- Shadow Pro: модалка, авто включено -
shadow_pro_settings_modal_auto_on
-
-
- Shadow Pro: модалка, авто выключено -
shadow_pro_settings_modal_auto-off
-
-

Четыре кадра подряд показывают развитие одного подпроекта: от панели и набросков к уточнению поведения в модалках.

- -

Панель настроек blob: версии v1–v9

-

- Итерации панели по именам файлов blob_settings_panel_v1 … v9. Сетка на ширине текста, три колонки на - широком экране; при сужении окна число колонок уменьшается автоматически. -

- -

Сетка удобна для сравнения шага к шагу; для деталей клик по ячейке открывает полноэкранный просмотр.

- -

Слайдер: версии v1–v18 и кадр 14

-

- Порядок по именам: slider_v1 … slider_v13, затем slider_14 (в ассете без суффикса v), - затем slider_v15 … slider_v18. -

- -

Такой ряд полезен при разборе эволюции контрола: от ранних раскладок до финальных состояний.

- -

Слайдеры: общий кадр

-

Сводный экран по слайдерам — после ряда по версиям.

-
- Все слайдеры: общий вид -
sliders_all_set
-
-

Завершает блок про слайдеры: контекст, как несколько контролов сосуществуют на одном экране.

-
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -954,7 +954,7 @@
- +

Contact

@@ -966,13 +966,14 @@
- + - - - + + + - - - - - + + + + + diff --git a/public/en/cases/manu-game-maker/index.html b/public/en/cases/manu-game-maker/index.html index 14760f5..58e9767 100644 --- a/public/en/cases/manu-game-maker/index.html +++ b/public/en/cases/manu-game-maker/index.html @@ -1,13 +1,13 @@ - - - - - - - Игровой движок MANU — кейс + + + + + + + MANU Game Engine — Case Study - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

Product Design · Desktop App

+

MANU Game Engine

+

+ Interface redesign and development: a new operational concept, an updated visual system, and hundreds of carefully crafted user scenarios. +

+

+ The work focused on the desktop editor and associated panels: the goal was to maintain the integrity of the visual language while expanding functionality and ensuring that the usage scenarios of power users were preserved. +

+

+ A detailed case study will be posted on this page later; below is the cover image for portfolio navigation. +

+

Cover

+
+ MANU Game Engine Interface — Case Cover +
Current preview for the portfolio card
+
+
+
- -
-
-

Product Design · Desktop App

-

Игровой движок MANU

-

- Редизайн и развитие интерфейса: новая концепция работы, обновлённая визуальная система и сотни проработанных пользовательских сценариев. -

-

- Работа велась вокруг десктопного редактора и связанных панелей: нужно было удержать целостность визуального языка при росте функциональности и не потерять опытные сценарии силовых пользователей. -

-

- Развёрнутый лонгрид кейса появится на этой странице позже; ниже — обложка для навигации из портфолио. -

-

Обложка

-
- Интерфейс игрового движка MANU — обложка кейса -
Текущее превью для карточки портфолио
-
-
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -696,7 +696,7 @@
- +

Contact

@@ -708,13 +708,14 @@
- + - - - + + + - - - - - + + + + + diff --git a/public/en/cases/mini-projects-showcase/index.html b/public/en/cases/mini-projects-showcase/index.html index 190bcb2..9f3b71d 100644 --- a/public/en/cases/mini-projects-showcase/index.html +++ b/public/en/cases/mini-projects-showcase/index.html @@ -1,13 +1,13 @@ - - - - - - - Активность — каталог карточек + + + + + + + Activity — Card Catalog - - - - - + + + + +
- +
- -
-
- - -
- - - -
-
- -
- - -
-
-
-
-

Design System · Активность

-

Карточки активности

-

Все типы карточек и живая сетка для подбора раскладки на главной

-

- Страница для верстки и контента: здесь те же классы и скрипты, что в секции на главной. Меняйте шрифт и тему в панели - справа, сужайте окно — сетка пересчитается. Подписи в заголовках карточек — подсказки, в проде их убрать. -

- - - -

Как пользоваться

-

- Сначала выберите тип (stack, horizontal, compact, decor), затем data-mp-cells (1–4) и - порядок li в списке. Карточки с data-mp-extra не влияют на высоту списка до кнопки «Показать все». - Подробности — в docs/mini-projects-cards.md. -

- -

Типы карточек

-

- Слева пример карточки с текстом, справа название типа и пояснение по классам. -

-
-
- -
-

- Stack со ссылкой. Превью на всю ширину, текст снизу. Для внешней ссылки: - mp-card--link и mp-card__ext в заголовке (как в блоке опыта). -

-
-
- -
-
-

mp-card--stack без ссылки

-
- -
-

Stack без ссылки

-
    -
  • заметка
  • -
-

- Связка баз и rollup для недельного обзора, только для личного пользования. -

-
-
-
-
-

- Stack без ссылки. Тот же вид. Обёртка div или article, без - mp-card--link. -

-
-
- -
- -
-

- Horizontal со ссылкой. Миниатюра слева, текст справа. На узком экране карточка - складывается в столбик. -

-
-
- -
-
-

mp-card--horizontal без ссылки

-
- -
-

Horizontal без ссылки

-
    -
  • шаблон
  • -
-

- Статический сайт с расписанием и формой заявки на отдельном сервисе. -

-
-
-
-
-

- Horizontal без ссылки. Тот же расклад, карточка не ведёт на внешний URL. -

-
-
- -
- -
-

- Compact со ссылкой. Только текст, без mp-card__media. В сетке часто с - data-mp-cells="1". -

-
-
- -
-
-

mp-card--compact без ссылки

-
-
-

Compact без ссылки

-
    -
  • документ
  • -
-

- Markdown-список проверок перед релизом мелких правок в интерфейсе. -

-
-
-
-
-

- Compact без ссылки. Короткая заметка или чеклист без внешней ссылки. -

-
-
- -
-
-

mp-card--decor

- -
-
-

- Декоративная ячейка. Заглушка в сетке, без проекта и ссылки. Внутри - span.mp-card__decor-pattern. -

-
-
-
- - -

Ширина в клетках

-

- Атрибут data-mp-cells на li.mini-projects-grid__item задаёт желаемую ширину от 1 до 4 клеток. - Скрипт не даст карточке быть шире текущего ряда. -

-

- Для адаптивной ширины используйте data-mp-cells-sm (при 4 клетках в ряду, ≥ 880 px) и - data-mp-cells-xs (при 2 клетках, ≥ 520 px). Скрипт выбирает значение по текущему числу клеток в ряду. -

-
- - - - - - - - - - - - - - - - - - - - - - - - - -
АтрибутКогда применяетсяПример
data-mp-cellsШирокий экран (6 клеток, ≥ 1180 px)data-mp-cells="3"
data-mp-cells-smСредний экран (4 клетки, ≥ 880 px)data-mp-cells-sm="2"
data-mp-cells-xsУзкий экран (2 клетки, ≥ 520 px)data-mp-cells-xs="1"
-
-

- Пример: data-mp-cells="3" data-mp-cells-sm="2" — карточка занимает 3 клетки на широком экране, 2 на среднем, 1 на узком. -

-
-
- -

≥ 1180 px — 6 клеток

-
-
3
-
3
-
2
-
2
-
2
-
1
-
2
-
3
-
4
-
2
-
-
-
- -

≥ 880 px — 4 клетки

-
-
3
-
1
-
2
-
2
-
1
-
2
-
2
-
4
-
-
-
- -

≥ 520 px — 2 клетки

-
-
1
-
1
-
2
-
2
-
1
-
1
-
-
-
- Цифра в блоке = значение data-mp-cells. Карточка занимает столько клеток подряд. При узком экране клеток меньше — карточки с шириной > число клеток переносятся на следующий ряд. С data-mp-cells-sm / data-mp-cells-xs карточка меняет ширину при сужении. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Ширина спискаКлеток в ряду
≥ 1180px6
≥ 880px4
≥ 520px2
уже1 (вся строка)
-

- На шести клетках пара 3 + 3 или тройка 2 + 2 + 2 обычно смотрится ровнее случайного набора. - Декор (mp-card--decor) заполняет пустоты в сетке. -

-
-
-
- -
-
-

Живая сетка masonry

-

- Демо блока «Активность» с главной: здесь все типы карточек в одной живой сетке. В подписях у каждой — тип - раскладки и data-mp-cells. Меняйте ширину окна и шрифт в панели темы, смотрите, как сетка - перестраивается, и переносите удачный порядок на главную. -

-
    -
  1. - - -
    -

    - [2] stack · ссылка - -

    -
      -
    • веб-сайт
    • -
    -

    Базовая пара в ряду из шести клеток.

    -
    -
    -
  2. -
  3. -
    - -
    -

    [2] stack

    -
      -
    • заметка
    • -
    -

    Stack без внешней ссылки.

    -
    -
    -
  4. -
  5. -
    - -
    -

    [2] horizontal

    -
      -
    • утилита
    • -
    -

    Horizontal на две клетки, без ссылки.

    -
    -
    -
  6. -
  7. -
    -
    -

    [2] compact

    -
      -
    • шаблон
    • -
    -

    Текстовая карточка на две клетки.

    -
    -
    -
  8. -
  9. - -
    -

    - [1] compact · ссылка - -

    -
      -
    • cli
    • -
    -

    Узкая колонка со ссылкой.

    -
    -
    -
  10. -
  11. -
    -
    -

    [1] compact

    -
      -
    • документ
    • -
    -

    Compact на одну клетку.

    -
    -
    -
  12. -
  13. - -
  14. -
  15. - - -
    -

    - [3] stack · ссылка - -

    -
      -
    • приложение
    • -
    -

    - Половина шестиклеточной строки. Длиннее описание, чтобы проверить перенос и высоту после смены шрифта. -

    -
    -
    -
  16. -
  17. - - -
    -

    - [3] horizontal · ссылка - -

    -
      -
    • плагин
    • -
    -

    Широкий horizontal: превью и текст в одной полосе.

    -
    -
    -
  18. -
  19. -
    - -
    -

    [3] horizontal

    -
      -
    • виджет
    • -
    -

    Horizontal на три клетки, без ссылки.

    -
    -
    -
  20. -
- -
-
- -
- -
-
- + +
+
+ + +
+ + + +
+
+ +
+ + +
+
+
+
+

Design System · Activity

+

Activity Cards

+

All card types and a live grid for selecting layouts on the homepage

+

+ Layout and content page: the same classes and scripts are used here as in the section on the homepage. Change the font and theme in the panel on the right; + narrow the window, and the grid will recalculate. The text in the card headers is just placeholder text; you can remove it when previewing. +

+ + + +

How to Use

+

+ First, select a type (stack, horizontal, compact, decor), then data-mp-cells (1–4) and + the order li in the list. Cards with data-mp-extra do not affect the height of the list until the “Show All” button is clicked. + For more details, see docs/mini-projects-cards.md. +

+ +

Card Types

+

+ On the left is an example of a text card; on the right is the type name and an explanation of the classes. +

+
+
+ +
+

+ Stack with a link. Full-width preview, text at the bottom. For an external link: + mp-card--link and mp-card__ext in the title (as in the "Experience" block). +

+
+
+ +
+
+

mp-card--stack without a link

+
+ +
+

Stack without a link

+
    +
  • note
  • +
+

+ A collection of databases and a rollup for a weekly overview, for personal use only. +

+
+
+
+
+

+ Stack without a link. Same view. Wrapper div or article, without + mp-card--link. +

+
+
+ +
+ +
+

+ Horizontal with a link. Thumbnail on the left, text on the right. On a narrow screen, the card + stacks vertically. +

+
+
+ +
+
+

mp-card--horizontal No link

+
+ +
+

Horizontal without a link

+
    +
  • Template
  • +
+

+ Static website with a schedule and an application form on a separate service. +

+
+
+
+
+

+ Horizontal without a link. Same layout; the card does not link to an external URL. +

+
+
+ +
+ +
+

+ Compact with a link. Text only, no mp-card__media. In the grid, often with + data-mp-cells="1". +

+
+
+ +
+
+

mp-card--compact no link

+
+
+

Compact without a link

+
    +
  • document
  • +
+

+ Markdown checklist before releasing minor UI changes. +

+
+
+
+
+

+ Compact without a link. A short note or checklist without an external link. +

+
+
+ +
+
+

mp-card--decor

+ +
+
+

+ Decorative cell. A placeholder in the grid, with no project or link. Inside + span.mp-card__decor-pattern. +

+
+
+
+ + +

Width in Cells

+

+ Attribute data-mp-cells sets li.mini-projects-grid__item specifies the desired width from 1 to 4 cells. + The script will not allow the card to be wider than the current row. +

+

+ For responsive width, use data-mp-cells-sm (for 4 cells per row, ≥ 880 px) and + data-mp-cells-xs (for 2 cells, ≥ 520 px). The script selects the value based on the current number of cells in a row. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
TheWhen to useExample
data-mp-cellsWide screen (6 cells, ≥ 1180 px)data-mp-cells="3"
data-mp-cells-smMedium screen (4 cells, ≥ 880 px)data-mp-cells-sm="2"
data-mp-cells-xsNarrow screen (2 cells, ≥ 520 px)data-mp-cells-xs="1"
+
+

+ Example: data-mp-cells="3" data-mp-cells-sm="2" — A card takes up 3 cells on a wide screen, 2 on a medium screen, and 1 on a narrow screen. +

+
+
+ +

≥ 1180 px — 6 cells

+
+
3
+
3
+
2
+
2
+
2
+
1
+
2
+
3
+
4
+
2
+
+
+
+ +

≥ 880 px — 4 cells

+
+
3
+
1
+
2
+
2
+
1
+
2
+
2
+
4
+
+
+
+ +

≥ 520 px — 2 cells

+
+
1
+
1
+
2
+
2
+
1
+
1
+
+
+
+ The number in the block = the value data-mp-cells. The card occupies that many cells in a row. On a narrow screen, there are fewer cells—cards with a width greater than the number of cells are carried over to the next row. As data-mp-cells-sm / data-mp-cells-xs the card changes its width when the view is narrowed. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
List widthCells per row
≥ 1180px6
≥ 880px4
≥ 520px2
already1 (entire row)
+

+ A pair on six cells 3 + 3 or a trio 2 + 2 + 2 usually looks neater than a random set. + Decor (mp-card--decor) fills in the gaps in the grid. +

+
+
+
+ +
+
+

Live masonry grid

+

+ A demo of the “Activity” block from the homepage: here, all card types are in a single live grid. Each card’s caption shows the type of + layout and data-mp-cells. Change the window width and font in the theme panel, watch how the grid + rearranges itself, and apply the best layout to the homepage. +

+
    +
  1. + + +
    +

    + [2] stack · link + +

    +
      +
    • website
    • +
    +

    A base pair in a row of six cells.

    +
    +
    +
  2. +
  3. +
    + +
    +

    [2] stack

    +
      +
    • note
    • +
    +

    Stack without an external link.

    +
    +
    +
  4. +
  5. +
    + +
    +

    [2] horizontal

    +
      +
    • utility
    • +
    +

    Horizontal, two cells wide, without a link.

    +
    +
    +
  6. +
  7. +
    +
    +

    [2] compact

    +
      +
    • template
    • +
    +

    A two-cell text card.

    +
    +
    +
  8. +
  9. + +
    +

    + [1] compact · link + +

    +
      +
    • cli
    • +
    +

    A narrow column with a link.

    +
    +
    +
  10. +
  11. +
    +
    +

    [1] compact

    +
      +
    • document
    • +
    +

    Compact, one cell wide.

    +
    +
    +
  12. +
  13. + +
  14. +
  15. + + +
    +

    + [3] stack · link + +

    +
      +
    • Appendix
    • +
    +

    + Half of a six-cell row. A longer description to check for line breaks and height after changing the font. +

    +
    +
    +
  16. +
  17. + + +
    +

    + [3] horizontal · link + +

    +
      +
    • plugin
    • +
    +

    Wide horizontal: preview and text in a single column.

    +
    +
    +
  18. +
  19. +
    + +
    +

    [3] horizontal

    +
      +
    • widget
    • +
    +

    Three-cell Horizontal, without a link.

    +
    +
    +
  20. +
+ +
+
+ +
+ +
+
+ - - - + + + - - - + + + diff --git a/public/en/cases/mobile-clinic-app/index.html b/public/en/cases/mobile-clinic-app/index.html index 24821e6..9c3fcfb 100644 --- a/public/en/cases/mobile-clinic-app/index.html +++ b/public/en/cases/mobile-clinic-app/index.html @@ -1,13 +1,13 @@ - - - - - - - Мобильное приложение для сети клиник — кейс + + + + + + + Mobile App for a Network of Clinics — Case Study - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

UX/UI · Mobile App

+

Mobile App for a Clinic Network

+

+ Booking doctor appointments and managing medical services: a simple user journey, intuitive navigation, and quick access to actions. +

+

+ The project’s focus is on alleviating patient anxiety and eliminating unnecessary steps: clear appointment statuses, predictable forms, and reliance on familiar mobile app patterns. +

+

+ A full breakdown of the case study will be published here; for now, this page serves as an entry point from the portfolio section on the homepage. +

+

Cover

+
+ Mobile App for a Network of Clinics — Case Study Cover +
Current preview for the portfolio card
+
+
+
- -
-
-

UX/UI · Mobile App

-

Мобильное приложение для сети клиник

-

- Запись к врачам и работа с медицинскими услугами: простой путь пользователя, понятная навигация и быстрый доступ к действиям. -

-

- Фокус проекта — снять тревожность и лишние шаги у пациента: ясные статусы записи, предсказуемые формы и опора на привычные паттерны мобильных приложений. -

-

- Полный разбор кейса будет опубликован здесь; пока страница служит точкой входа из блока портфолио на главной. -

-

Обложка

-
- Мобильное приложение для сети клиник — обложка кейса -
Текущее превью для карточки портфолио
-
-
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -696,7 +696,7 @@
- +

Contact

@@ -708,13 +708,14 @@
- + - - - + + + - - - - - + + + + + diff --git a/public/en/cases/obsidian-plugin-columns-view/index.html b/public/en/cases/obsidian-plugin-columns-view/index.html index 3b41c1e..b1614b2 100644 --- a/public/en/cases/obsidian-plugin-columns-view/index.html +++ b/public/en/cases/obsidian-plugin-columns-view/index.html @@ -5,9 +5,9 @@ - Колоночный вид для Obsidian — кейс + Column View for Obsidian — Case Study - - + - + diff --git a/public/en/cases/orc-automation-panel/index.html b/public/en/cases/orc-automation-panel/index.html index ee9d32d..e129936 100644 --- a/public/en/cases/orc-automation-panel/index.html +++ b/public/en/cases/orc-automation-panel/index.html @@ -1,13 +1,13 @@ - - - - - - - Веб-панель для оркестрации автоматизаций — кейс + + + + + + + Web Dashboard for Automation Orchestration — Case Study - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

Primo RPA · UX/UI · Web App

+

Web Dashboard for Automation Orchestration

+

+ Primo RPA Orchestrator: launching robots, managing projects, and monitoring processes in a web dashboard for administrators and automation developers. +

+ +
+

Context

+

+ In the Primo RPA stack, the orchestrator manages the scheduling, queue, and statuses of RPA robots on the client’s infrastructure. It can be accessed not only from the development studio but also from a browser: users view projects, restart tasks, and troubleshoot failures. +

+

+ By that point, the product was already in use, but the interface was noticeably outdated: users faced navigation issues, visual clutter in tables, and confusing workflows in some sections. The goal was to refresh the interface’s look, modernize it, and fix the accumulated UX issues. +

+
+ +
+

Role and Approach

+

+ My role in this project was more of a curatorial one—I didn’t do the design myself, but rather structured the process so that the design and development teams could work in sync. +

+ +

+ At the same time, I was looking for a designer who could take on the main visual design work. Elizaveta was selected—out of more than 150 applications, she was the best fit for the upcoming workload. +

+

+ Over the course of three months, I brought the new team member up to speed on the project details: I assigned tasks, provided feedback on the mockups she created, and shared context on user scenarios. Together with the development team, we planned the order in which to update the service’s design—we revised screens based on priority, incorporating changes into ongoing releases, without “stopping everything and redesigning from scratch.” +

+
+ +
+

Technical Stack and Tools

+

+ The latest version of Ant Design was chosen as the UI framework. It was already in use on the project, and its latest release introduced the Theme Editor—a feature that allowed us to customize the appearance of components using design tokens without manually overriding styles. This provided both designers and developers with a unified language for describing the user interface. +

+

+ Storybook served as the single source of truth and the bridge between design and development. In Storybook, components weren’t just documented—they actually worked in an isolated environment. This allowed designers to see the elements in action and developers to integrate components into the dashboard more quickly. +

+
+ +
+

Design System and Synchronization

+

+ To streamline our workflow, we synchronized tokens from Ant Design with those in Figma—colors, padding, typography, and corner radii were standardized to consistent values. Here’s how it worked: if tokens were updated in Figma, they could be exported as JSON and immediately imported into the code without any issues—instead of having a developer manually search for changes and update each token individually. This approach also allowed us to view the design more systematically. +

+ +

+ Components in Figma were built from scratch—based on Ant Design references, but without using pre-made libraries. The decision to avoid pre-made solutions was a conscious one: we needed full customization to fit our workflow and the ability to use new Figma features that weren’t supported in libraries from the Figma community. +

+

+ For Storybook, we selected and configured plugins that were relevant to our tasks—accessibility checks, viewing component states, and switching themes and locales. This turned Storybook into more than just a showcase for components; it became a full-fledged design review tool. +

+
+ +
+

Designer’s Work Environment

+

+ We set up the environment so that designers could see the live implementation of components on their own computers using a local Storybook instance and Git. This allowed for more precise control over how the intended design was translated into code and enabled us to quickly spot discrepancies early on. +

+

+ We also discussed a step to accelerate Storybook support by allowing designers to write the JSX for implemented components themselves—this shortened the path from mockup to a documented component in Storybook. +

+

+ We fine-tuned the workflow for adding icons to the library. The key feature was that icons could be displayed in Storybook with filtering and sorting capabilities. At the same time, designers could update icons without involving a developer—they simply pushed new files to the repository. +

+

+ Being able to see the updated icon immediately in the browser allowed us to optimize it better and eliminate display glitches when using Boolean operations. +

+

+ We also developed an approach and set of rules for Figma that not only guided the designer but also ensured the creation of consistent and functional icons. +

+
+ +
+

UX Improvements

+

+ During the interface update, Elizaveta also proposed a number of user experience improvements. Some of them were successfully implemented—for example, clearer grouping of elements in complex forms and redesigned loading states. However, the priority was not to disrupt the existing UX that users had grown accustomed to, so many ideas were saved for the backlog for the next iteration. +

+
+ +
+

Project List

+

+ The project table is one of the most frequently viewed screens. In the old version, there were many columns, a dense grid, and small text: the project status and name were difficult to read, especially on a laptop. +

+

In the new version:

+
    +
  • the columns have been reduced to what’s necessary for daily work;
  • +
  • statuses and actions have been moved to predictable areas within each row;
  • +
  • indentation and typography have been aligned with the rest of the panel using Ant Design.
  • +
+ +

It used to be

+
+ List of projects in the orchestrator — previous version of the table +
+ +

Now

+
+ List of Projects in the Orchestrator — Updated Table +
+
+ +
+

Results and Reflection

+

+ The projects screen became easier to scan: less visual noise, and it’s faster to find the right project and its status. After rolling out the new design to several clients, we received positive feedback and many ideas for further improvements. +

+

+ I stepped away from the project once Elizaveta felt confident in her role and was able to handle design tasks independently. I occasionally answered specific questions, but overall, the handoff went smoothly. +

+

+ A little over a year later, the team’s processes have changed significantly. According to the team, tools powered by neural networks—such as Claude Design—are now actively involved in the creation and handoff of designs. What we used to build manually using tokens, Storybook, and environment synchronization is now, to some extent, automated. +

+

+ I believe the work was completed fairly quickly and to a high standard—amid constant changes in the market and within the company, we managed not only to update the interface but also to establish a sustainable process that continued to function even without my involvement. +

+
+
+
- -
-
-

Primo RPA · UX/UI · Web App

-

Веб-панель для оркестрации автоматизаций

-

- Оркестратор Primo RPA: запуск роботов, проекты и контроль процессов в веб-кабинете для админов и разработчиков автоматизаций. -

- -
-

Контекст

-

- В стеке Primo RPA оркестратор отвечает за расписание, очередь и статусы RPA-роботов на инфраструктуре клиента. С ним работают не только из студии разработки, но и из браузера: смотрят проекты, перезапускают задания, разбирают сбои. -

-

- К тому моменту продукт уже был в эксплуатации, но интерфейс заметно устарел: пользователи сталкивались с неудобствами в навигации, визуальным шумом в таблицах и неочевидными сценариями в некоторых разделах. Задача стояла освежить вид интерфейса, сделать его современным и исправить накопившиеся UX-проблемы. -

-
- -
-

Роль и подход

-

- Моя роль в этом проекте была скорее кураторской — я не делал дизайн самостоятельно, а выстраивал процесс так, чтобы команда дизайна и разработки работала слаженно. -

- -

- Параллельно я искал дизайнера, который взял бы на себя основную визуальную работу. Отбор прошла Елизавета — среди более чем 150 заявок она лучше всего подходила под предстоящий фронт работ. -

-

- В течение трёх месяцев я погружал новую сотрудницу в детали проекта: ставил задачи, давал обратную связь по создаваемым макетам, делился контекстом по пользовательским сценариям. Вместе с командой разработки мы планировали порядок обновления дизайна сервиса — меняли экраны по приоритету, вкладывая изменения в текущие релизы, без «остановить всё и перерисовать». -

-
- -
-

Технический стек и инструменты

-

- В качестве фреймворка для интерфейса был выбран Ant Design последней версии. Он уже использовался в проекте, и его свежий релиз предлагал Theme Editor — возможность настраивать внешний вид компонентов через дизайн-токены без переопределения стилей вручную. Это давало и дизайнерам, и разработчикам единый язык описания интерфейса. -

-

- Единым источником правды и мостом между дизайном и разработкой стал Storybook. В нём компоненты были не просто задокументированы, а реально работали в изолированной среде — это позволяло дизайнерам видеть реализацию элементов вживую, а разработчикам — быстрее интегрировать компоненты в панель. -

-
- -
-

Дизайн-система и синхронизация

-

- Для удобства работы мы синхронизировали токены из Ant Design с токенами в Figma — цвета, отступы, типографика и радиусы скругления были приведены к единым значениям. Работало это так: если в Figma токены обновлялись, их можно было выгрузить в JSON и без проблем сразу загрузить в код — вместо того, чтобы разработчик вручную искал изменения и правил каждый токен индивидуально. Такой подход также позволил смотреть на дизайн более системно. -

- -

- Компоненты в Figma создавались с нуля — по референсам Ant Design, но без использования готовых библиотек. Отказ от готовых решений был осознанным: нам нужна была полная настройка под наш стиль работы и возможность использовать новые функции Figma, которые не поддерживались в библиотеках из сообщества Figma. -

-

- Для Storybook мы отобрали и настроили плагины, которые были уместны для наших задач — контроль доступности, просмотр состояний компонентов, переключение тем и локалей. Это сделало Storybook не просто витриной компонентов, а полноценным инструментом дизайн-ревью. -

-
- -
-

Рабочая среда дизайнера

-

- Мы настроили среду так, чтобы дизайнер мог видеть реализацию компонентов вживую у себя на компьютере, используя локальный Storybook и Git. Это позволяло точнее контролировать, как задуманный дизайн воплощается в коде, и оперативно замечать расхождения на ранних этапах. -

-

- Обсуждался также шаг ускорить поддержку Storybook тем, чтобы дизайнер сам мог описывать JSX для реализованного компонента — это сокращало путь от макета до документированного компонента в сторибуке. -

-

- Мы отладили рабочий процесс по передаче иконок в библиотеку. Особенность заключалась в том, чтобы иконки можно было отобразить в Storybook с фильтрацией и сортировкой. При этом дизайнер мог обновлять иконки без привлечения разработчика — просто пушил новые файлы в репозиторий. -

-

- Увидеть обновлённую иконку сразу в браузере позволяло лучше её оптимизировать и убрать косяки отображения при использовании булевых операций. -

-

- Для Figma также был разработан подход и правила, которые не только ограничивали дизайнера, но и позволяли гарантированно делать консистентные и рабочие иконки. -

-
- -
-

UX-улучшения

-

- За время обновления интерфейса Елизавета предложила ещё и ряд улучшений пользовательского опыта. Часть из них была успешно внедрена — например, более понятная группировка элементов в сложных формах и переработанные состояния загрузки. Но в приоритете было не ломать старый UX, к которому привыкли пользователи, поэтому многие идеи сохранились в бэклог для следующей итерации. -

-
- -
-

Список проектов

-

- Таблица проектов — один из самых частых экранов. На старой версии много колонок, плотная сетка и мелкий текст: статус и имя проекта читаются с трудом, особенно на ноутбуке. -

-

В новой версии:

-
    -
  • колонки свели к тому, что нужно для ежедневной работы;
  • -
  • статусы и действия вынесли в предсказуемые зоны строки;
  • -
  • отступы и типографику подтянули под остальную панель на Ant Design.
  • -
- -

Было

-
- Список проектов в оркестраторе — предыдущая версия таблицы -
- -

Стало

-
- Список проектов в оркестраторе — обновлённая таблица -
-
- -
-

Результаты и рефлексия

-

- Экран проектов стал проще сканировать: меньше визуального шума, быстрее находить нужный проект и его состояние. После раскатывания нового дизайна среди нескольких клиентов мы получили положительные отзывы и множество идей для дальнейших улучшений. -

-

- Я оставил проект, когда Елизавета уже уверенно чувствовала себя в нём и могла самостоятельно вести дизайнерские задачи. Периодически я отвечал на точечные вопросы, но в целом передача прошла гладко. -

-

- Спустя год с небольшим процессы в команде заметно изменились. По словам ребят, в создании и передаче дизайна теперь активное участие принимают инструменты с нейросетями — такие как Claude Design. То, что мы начинали выстраивать вручную через токены, Storybook и синхронизацию сред, сейчас в какой-то мере автоматизируется. -

-

- Считаю, что проделанная работа была выполнена достаточно оперативно и качественно — в условиях постоянных изменений на рынке и внутри компании нам удалось не просто обновить интерфейс, но и выстроить устойчивый процесс, который продолжил работать уже без моего участия. -

-
-
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -835,7 +835,7 @@
- +

Contact

@@ -847,13 +847,14 @@
- + - - - + + + - - - - + + + + diff --git a/public/en/cases/site-with-ai-ide/index.html b/public/en/cases/site-with-ai-ide/index.html index 4f936a4..64d5dbb 100644 --- a/public/en/cases/site-with-ai-ide/index.html +++ b/public/en/cases/site-with-ai-ide/index.html @@ -5,9 +5,9 @@ - Этот сайт — Разработка с AI IDE — кейс + This Website — Developed with AI IDE — Case Study - - + - + diff --git a/public/en/cases/task-distribution-concept/index.html b/public/en/cases/task-distribution-concept/index.html index 525ff02..19ed453 100644 --- a/public/en/cases/task-distribution-concept/index.html +++ b/public/en/cases/task-distribution-concept/index.html @@ -1,13 +1,13 @@ - - - - - - - Концепт сервиса распределения задач — кейс + + + + + + + Task Distribution Service Concept — Case Study - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

UX/UI · Analytics

+

Task Assignment Service Concept

+

+ Product concept: setting, assigning, and tracking tasks with an emphasis on process transparency and seamless teamwork. +

+

+ The goal of the concept is to show how the team views the workflow without “black boxes”: who is working on what, where the bottlenecks are, and which statuses are critical for the next step. +

+

+ A detailed case study will be posted here later; the page is already linked to a portfolio entry on the website. +

+

Cover

+
+ Task Distribution Service Concept — Case Cover +
Current preview for the portfolio card
+
+
+
- -
-
-

UX/UI · Analytics

-

Концепт сервиса распределения задач

-

- Продуктовый концепт: постановка, распределение и отслеживание задач с акцентом на прозрачность процессов и удобство командной работы. -

-

- Задача концепта — показать, как команда видит поток работ без «чёрных ящиков»: кто что взял, где узкие места и какие статусы критичны для следующего шага. -

-

- Детальный кейс появится здесь позже; страница уже связана с карточкой в портфолио на сайте. -

-

Обложка

-
- Концепт сервиса распределения задач — обложка кейса -
Текущее превью для карточки портфолио
-
-
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -696,7 +696,7 @@
- +

Contact

@@ -708,13 +708,14 @@
- + - - - + + + - - - - - + + + + + diff --git a/public/en/cases/task-tracker/index.html b/public/en/cases/task-tracker/index.html index c1b955a..47002f5 100644 --- a/public/en/cases/task-tracker/index.html +++ b/public/en/cases/task-tracker/index.html @@ -1,13 +1,13 @@ - - - - - - - Таск-трекер для бек-офис системы — кейс + + + + + + + Task Tracker for a Back-Office System — Case Study - + - - - - - + + + + +
- +
- +
-
- -
+
+ +
+ + +
+
+

Test Assignment · Back Office

+

Task Tracker for an Internal Back-Office System

+

Assignment

+

+ Implement an interface for planning and assigning tasks to employees in the operations department who work in a back-office system. There are a large number of diverse tasks that can be grouped into the following categories: Type-1, Type-2, Type-3, Type-4, Type-5, Type-6, Type-7. Each task has its own automatically assigned priority. Users have access only to tasks from specific categories. +

+

The following needs to be implemented:

+
    +
  • + Main screen: +
      +
    • where the user can view all open general tasks and select some for themselves.
    • +
    • A personal to-do list displaying both manually selected tasks and automatically assigned ones.
    • +
    • For a selected task, there is the option to assign it to another employee or return it to the general list.
    • +
    +
  • +
  • A screen where users can see what tasks each person is working on.
  • +
+ +

Introduction

+

+ Since I personally have extensive experience working with task trackers, I’m drawing on my own experience and that of my colleagues, while taking the project requirements into account. +

+ +

References

+
+ References +
+
    +
  • Task trackers (Trello, Monday, YouTrack, etc.)
  • +
  • Services for visual database management (Notion, Airtable, etc.)
  • +
+ +

Solution

+ +

Screencast

+
+
+ +
+
+ + + +

Tabs

+

On the All Tasks tab, the employee can view all available tasks.

+
+ Untitled +
+

+ The "My tasks" tab displays only those tasks assigned to the current employee. Tasks are grouped by status (the status is hidden in the task card). +

+
+ Untitled +
+

The “Task by Assignee” tab displays all tasks broken down by assignee.

+
+ Untitled +
+

Options for the current tab are located on the right-hand side.

+
+ Untitled +
+

+ All changes are saved when you leave the tab and when you close the entire Tasks page. These settings are individual, and each employee can customize the page as they see fit. +

+
    +
  • Group—allows you to create additional groupings based on task properties (category, priority, assignee, status, creation date, modification date).
  • +
  • View—allows you to change the display of current tasks to a different view: board, list, or table.
  • +
  • Filter—allows you to hide tasks based on their properties.
  • +
  • + Sort—allows you to determine the order in which tasks are displayed based on their properties. If sorting by status (High, Medium, Low) is enabled, you can choose either alphabetical order or reverse order, or you can create your own order. Dates and numbers are sorted in ascending or descending order. +
  • +
  • + Search on page — allows you to display only those tasks whose title or description contains a specific search word or phrase. (Search functionality can be improved by adding search operators if research demonstrates the need.) +
  • +
+

+ The page uses lazy loading for tasks. As you scroll down, new tasks will load. The number of tasks is displayed in the headers; this can be helpful for estimating how far you need to scroll to see everything. There may be a large number of tasks, in which case it might make sense to add pagination as well. +

+ +

Display Options (Views)

+

+ Different views of the same tasks can be useful for various contexts in which the Tasks page is used, as well as to accommodate employees’ personal preferences, which increases their efficiency. An employee who isn’t annoyed by the interface works more productively and contributes more. +

+
+ Untitled +
+ +

+ The Board view makes it easier to use the drag-and-drop feature (see below). It’s also visually easier to determine the number of tasks in a category, which I imagine could be helpful. When tasks are grouped by completion status, moving cards from left to right creates a natural horizontal flow of tasks from point A to point B. +

+
+ Untitled +
+

+ The List view allows you to see more information in a smaller screen area. At the same time, this view is visually and functionally simpler than the table view, which means less cognitive load on the user. Also, all task titles start at the far left, making it easy to scan the list. +

+
+ Untitled +
+

+ The Table view allows you to work with all task fields immediately, without having to open the task in a modal window or a separate page. The table allows you to customize the width and order of columns, which can be convenient in certain use cases. +

+
+ Untitled +
+ +
+
+ +
+
+ + +

Drag & Drop

+

+ In all views, you can drag and drop elements (cards, list items, and table rows and columns). This promotes more productive work and feels natural to the user. For example, if you need to distribute tasks among employees (for an admin or manager), change the status of multiple tasks at once, or do so within a short period of time. +

+

Board view

+
+
+ +
+
+ +

List view

+
+
+ +
+
+ +

Advanced interactive prototype in ProtoPie

+

+ A schematic representation of how Drag & Drop works. This type of prototype helps designers better understand the nuances that need to be considered in the user flow, as well as when preparing specifications for developers. Also, by testing this prototype, you may realize that the feature needs to work completely differently and decide to redesign it right away. This saves overall development time. +

+
+
+ +
+
+ +

+ In the prototype, only the blue card can be moved, and not all positions work correctly. You can view the recording, which is available on the same prototype page. +

+ +

Style

+

+ The visual style can be anything you like without changing the framework itself. For example, it could be a bit more colorful with more expressive fonts. +

+

Light-colored theme

+
+ Light-colored theme +
+ +

Neutral dark theme

+
+ Neutral Dark Theme +
+ + +

Research

+

+ During the Figma prototyping phase, you can conduct interviews with several employees—for example, 5 people. First, add real tasks from the current system to the prototype; about 20 should be enough. Next, you can hold a video call with the respondent’s screen shared or meet in person to present a few tasks and ask some questions. During the session, the respondent can interact with the prototype, but if something doesn’t work, the interviewer can note the attempt and explain that this feature isn’t working yet, as well as ask what the respondent expects to see next. +

+

Tasks

+
    +
  1. Find your current tasks on the Tasks page under the All Tasks tab
  2. +
  3. Assign tasks to yourself to work on
  4. +
  5. Find a task related to a specific topic (the interviewer provides an example) that they have already completed
  6. +
  7. Show tasks that belong only to a specific category and must be completed by the end of the week
  8. +
  9. Request that the priority of several tasks be changed at once
  10. +
  11. Rate the visual appeal of the interface on a scale of 1 to 10
  12. +
  13. Rate your overall impression of the proposed concept on a scale of 1 to 10
  14. +
  15. Suggest additional features that would be useful
  16. +
+

Analytics

+

To assess the relevance of the implemented features, the following metrics must be collected.

+
    +
  • + Number of page views for the "Tasks" page page_views_tasks with the option to break them down +
      +
    • + by tabs +
        +
      • All tasks all_tasks_tab
      • +
      • My tasks my_tasks_tab
      • +
      • Tasks by Assignment tasks_by_assign
      • +
      +
    • +
    • + by role +
        +
      • Admin admin
      • +
      • Manager manager
      • +
      • User user
      • +
      +
    • +
    • + by search attempts +
        +
      • Search Used search used
      • +
      +
    • +
    +
  • +
  • + Number of enabled custom settings custom_settings with the option to group +
      +
    • + by tabs +
        +
      • All tasks all_tasks_tab
      • +
      • My tasks my_tasks_tab
      • +
      • Tasks by Assignment tasks_by_assign
      • +
      +
    • +
    • + by role +
        +
      • Admin admin
      • +
      • Manager manager
      • +
      • User user
      • +
      +
    • +
    • + by type +
        +
      • Group group
      • +
      • Filter filter
      • +
      • Sort sort
      • +
      +
    • +
    +
  • +
  • + Number of included species View Used view_used with the option to break down +
      +
    • + by tabs +
        +
      • All tasks all_tasks_tab
      • +
      • My tasks my_tasks_tab
      • +
      • Tasks by Assignment tasks_by_assign
      • +
      +
    • +
    • + by role +
        +
      • Admin admin
      • +
      • Manager manager
      • +
      • User user
      • +
      +
    • +
    +
  • +
+

+ Then, over the next six months (or sooner, depending on user activity), we’ll be able to see the results and conduct a study (in the form of interviews) on the features that are used least frequently and those that have received complaints, in order to gather high-quality data and get a complete picture of what’s happening. +

+ +

Additional details

+

+ When creating mockups in Figma, the following were used: auto-layout features; interactive components; plugins (Iconify, Fitter, Protofly, Shadow Maker, Dark Side, etc.); and the Community file (+40 Types of Cursor). About 60% of the layers are named and organized for easier workflow. An 8pt grid is used, with additional sizes of 2pt and 4pt. Color styles are available for light and dark themes. The design adapts to changing window sizes (no mobile version). +

+ +
+
- -
-
-

Тестовое задание · back-office

-

Таск-трекер для внутренней бек-офис системы

-

Задание

-

- Реализовать интерфейс для планирования и распределения задач между сотрудниками операционного отдела, работающими в некой бек-офис системе. Существует большое количество разноплановых задач, которые можно сгруппировать: Тип-1, Тип-2, Тип-3, Тип-4, Тип-5, Тип-6, Тип-7. У каждой задачи есть свой, выставляемый автоматически, приоритет. Пользователю доступны только задачи из определенных категорий. -

-

Нужно реализовать:

-
    -
  • - Общий экран: -
      -
    • где пользователь может посмотреть все открытые общие задачи и взять какие-то себе.
    • -
    • персональный ToDo лист, где отображаются как взятые вручную задачи, так и автоматически назначенные.
    • -
    • у взятой задачи есть возможность передать ее другому сотруднику или вернуть в общий список.
    • -
    -
  • -
  • Экран, где можно посмотреть, что у кого в работе.
  • -
- -

Введение

-

- Так как у меня лично есть обширный опыт работы с таск-трекерами, то я опираюсь на свой опыт и опыт моих коллег с учётом требований задания. -

- -

Референсы

-
- Референсы -
-
    -
  • Таск-трекеры (Trello, Monday, YouTrack и др.)
  • -
  • Сервисы для визуальной работы с базами данных (Notion, Airtable и др.)
  • -
- -

Решение

- -

Скринкаст

-
-
- -
-
- - - -

Вкладки (Tabs)

-

На вкладке All tasks сотрудник может ознакомиться со всеми доступными задачами.

-
- Untitled -
-

- На вкладке My tasks отображаются только те задачи, что закреплены за текущим сотрудником. Группировка идёт по статусам задач (статус в карточке задачи скрыт). -

-
- Untitled -
-

На вкладке Task by assign отображены все задачи c разбивкой по исполнителю.

-
- Untitled -
-

В правой части имеются опции для текущей вкладки.

-
- Untitled -
-

- Все изменения сохраняются после ухода с вкладки и после закрытия всей страницы Tasks. Эти настройки индивидуальны и каждый сотрудник может настроить страницу как ему удобно. -

-
    -
  • Group - позволяет создать дополнительную группировку по свойству таски (категория, приоритет, исполнитель, статус, дата создания, дата изменения).
  • -
  • View - позволяет изменить отображение текущих задач на другой вид: доска, список, таблица.
  • -
  • Filter - позволяет скрывать задачи по свойствам.
  • -
  • - Sort - позволяет определять порядок отображения задач по свойствам. Если включена сортировка по статусу High, Medium, Low то можно выбрать либо по алфавиту, либо в обратном порядке, а также можно создать свой порядок. С датами и цифрами работает принцип по возрастанию/убыванию. -
  • -
  • - Search on page - позволяет отобразить только те задачи, в названии или описании которых есть поисковое слово или фраза. (Можно улучшить функционал поиска, добавив поисковые операторы, если исследования докажут эту необходимость) -
  • -
-

- На странице работает постепенная подгрузка задач. По мере скрола вниз, будут подгружаться новые задачи. Кол-во задач указывается в заголовках, это может быть полезно, чтобы оценить как далеко надо скролить, чтобы все посмотреть. Задач может быть очень много и тогда возможно имеет смысл добавить ещё и переход по страницам. -

- -

Варианты отображения (Views)

-

- Разные виды отображения одних и тех же задач могут быть полезны для разных контекстов использования страницы Tasks и также в угоду личным предпочтениям сотрудника, что повышает его эффективность. Сотрудник, которого не раздражает интерфейс работает продуктивнее и приносит больше пользы. -

-
- Untitled -
- -

- Вид Board позволяет удобнее работать с функцией Drag&Drop (см. ниже). Также визуально легче определить кол-во задач в категории, подразумеваю что это может быть полезно. В случае использования группировки задач по статусам выполнения, перемещение карточек слева направо создаёт естественное горизонтальное течение задач из точки А в точку Б. -

-
- Untitled -
-

- Вид List позволяет увидеть больше информации на меньшей площади экрана. При этом этот вид визуально и функционально легче табличного вида, а значит меньше когнитивной нагрузки на пользователя. Также здесь все заголовки задач начинаются в крайнем левом положении, поэтому становится легко пробежаться глазами по списку. -

-
- Untitled -
-

- Вид Table позволяет сразу же работать со всеми полями задачи, без раскрытия её в модальном окне или отдельной странице. Таблица подразумевает пользовательскую настройку ширины и порядка столбцов, что может быть удобно в некоторых кейсах использования. -

-
- Untitled -
- -
-
- -
-
- - -

Drag&Drop

-

- Во всех видах можно перетаскивать элементы (карточки/элементы списка/строки и столбцы таблицы). Это способствует более продуктивной работе и выглядит естественным для пользователя. Например, если требуется раскидать задачи между сотрудниками (для админа или менеджера), поменять статус для нескольких задач разом или в короткий отрезок времени. -

-

Board view

-
-
- -
-
- -

List view

-
-
- -
-
- -

Продвинутый интерактивный прототип в ProtoPie

-

- Схематичное представление того как работает Drag&Drop. Такой прототип помогает дизайнеру лучше понять какие нюансы нужно учесть в юзерфлоу, а также и при подготовке спецификации для разработчика. Также попробовав данный прототип можно прийти к тому, что функционал должен работать совсем иначе и переделать его сразу. Это экономит общее время разработки. -

-
-
- -
-
- -

- В прототипе можно перемещать только голубую карточку и не все положения работают корректно. Можно посмотреть запись, которая доступна на той же странице прототипа. -

- -

Стиль

-

- Визуальный стиль может быть любым, не меняя самого каркаса. Например, чуть более красочным и с более выразительными шрифтами. -

-

Светлая цветная тема

-
- Светлая цветная тема -
- -

Нейтральная тёмная тема

-
- Нейтральная тёмная тема -
- - -

Исследования

-

- На этапе прототипов Figma можно провести интервью с несколькими сотрудниками, например 5 человек. Предварительно в прототип нужно добавить реальные задачи из текущей системы, порядка 20 должно хватить. Далее можно созвониться по видеосвязи с шэрингом экрана респондента или встретиться лично и задать несколько заданий и вопросов. Во время сессии респондент может тыкать в прототип, но если что-то не сработает интервьюер может зафиксировать попытку и объяснить, что этот функционал пока не работает, а также поинтересоваться что респондент ожидает увидеть дальше. -

-

Задания

-
    -
  1. Найти свои актуальные задачи со страницы Tasks вкладки All tasks
  2. -
  3. Назначить себе задачи, чтобы взять в работу
  4. -
  5. Найти задачу про что-то конкретное (интервьюер приводит пример), которую он уже выполнил ранее
  6. -
  7. Показать задачи, которые относятся только к определённой категории и должны быть сделаны до конца недели
  8. -
  9. Попросить поменять приоритет у нескольких задач одновременно
  10. -
  11. Оценить визуальную привлекательность интерфейса по шкале от 1 до 10
  12. -
  13. Оценить общее впечатление от предложенного концепта по шкале от 1 до 10
  14. -
  15. Предложить ещё функции, которые были бы полезны
  16. -
-

Аналитика

-

Для оценки актуальности реализованного функционала необходимо собирать следующие показатели.

-
    -
  • - Кол-во просмотров страницы Tasks page_views_tasks с возможностью разбиения -
      -
    • - по вкладкам -
        -
      • All tasks all_tasks_tab
      • -
      • My tasks my_tasks_tab
      • -
      • Tasks by assign tasks_by_assign
      • -
      -
    • -
    • - по ролям -
        -
      • Admin admin
      • -
      • Manager manager
      • -
      • User user
      • -
      -
    • -
    • - по попыткам поиска -
        -
      • Search Used search used
      • -
      -
    • -
    -
  • -
  • - Кол-во включённых пользовательских настроек Custom Settings custom_settings с возможностью разбиения -
      -
    • - по вкладкам -
        -
      • All tasks all_tasks_tab
      • -
      • My tasks my_tasks_tab
      • -
      • Tasks by assign tasks_by_assign
      • -
      -
    • -
    • - по ролям -
        -
      • Admin admin
      • -
      • Manager manager
      • -
      • User user
      • -
      -
    • -
    • - по типам -
        -
      • Group group
      • -
      • Filter filter
      • -
      • Sort sort
      • -
      -
    • -
    -
  • -
  • - Кол-во включенных видов View Used view_used с возможностью разбиения -
      -
    • - по вкладкам -
        -
      • All tasks all_tasks_tab
      • -
      • My tasks my_tasks_tab
      • -
      • Tasks by assign tasks_by_assign
      • -
      -
    • -
    • - по ролям -
        -
      • Admin admin
      • -
      • Manager manager
      • -
      • User user
      • -
      -
    • -
    -
  • -
-

- Далее в течение полугода (может и раньше, в зависимости от активности пользователей) можно будет увидеть результат и провести исследование (в виде интервью) по функциям, которые используются реже всего и тем на которые есть жалобы, чтобы получить качественные данные и составить полную картину происходящего. -

- -

Дополнительные детали

-

- При создании мокапов в Figma были использованы: возможности автолэаутов; интерактивные компоненты, плагины (Iconify, Fitter, Protofly, Shadow Maker, Dark Side и др.), файл Community (+40 Types of Cursor). Слои названы и организованы для более удобной работы где-то на 60%. Используется сетка 8pt + есть размеры 2pt, 4pt. Имеются цветовые стили для светлой и тёмной темы. Присутствует адаптивность под изменяющиеся размеры окна (мобильной версии нет). -

- -
-
-
-

Смотрите также

+

See also

  1. - +
  2. - +
  3. - +
  4. @@ -1124,7 +1164,7 @@
- +

Contact

@@ -1136,13 +1176,14 @@
- + - - - + + + - - - - - - - - + + + + + + + + diff --git a/public/en/cases/template-elements-demo/index.html b/public/en/cases/template-elements-demo/index.html index 75074d6..e47ac2a 100644 --- a/public/en/cases/template-elements-demo/index.html +++ b/public/en/cases/template-elements-demo/index.html @@ -1,10 +1,10 @@ - - - - - - - Демо элементов кейса — template + + + + + + + Case Study Elements Demo — template - + - - - - - + + + + +
- +
- -
-
- - -
- - - -
-
- -
- - -
-
-

Демо · template

-

Пример кейса: демо элементов

-

Рыба-текст и блоки для быстрой сборки лонгрида

-

Медиа для демо лежат в public/assets/ (сборка страниц их не копирует). См. public/assets/README.md.

- -

Контекст

-

- Этот раздел показывает пример рыбы для вступления. Здесь можно коротко описать продукт, аудиторию и ограничения проекта. - Текст нейтральный: цель — быстро набросать структуру и проверить визуальный ритм страницы. -

- -

Задача

-

- Нужно собрать демонстрационный лонгрид с основными UI-элементами: карточками ссылок, медиа-блоками и примерами оформления контента. - Дополнительно важно проверить, как блоки ведут себя на узких и широких экранах. -

- -

Решение

-

Ниже собраны готовые примеры, которые можно копировать в реальные кейсы.

- -

Карточки ссылок

- - -

Картинка: 50% от оригинала (без превью)

-
- Демо GIF в натуральном размере -
Изображение в уменьшенном натуральном размере, по центру.
-
- -

Картинка: по ширине контента (с превью)

-
- Демо изображения по ширине контента -
Изображение по ширине контента. Клик открывает viewer.
-
- -

Картинка: чуть шире контента (с превью)

-
- Демо изображения шире контента -
Изображение немного выходит за пределы контентной колонки.
-
- -

Длинный скрин: свёрнутая высота и кнопка внутри превью

-

- Блок data-case-tall-media: ширина задаётся атрибутом data-case-tall-width="wide" (как «широкая» картинка) или content (по колонке). В свёрнутом виде видна верхняя часть кадра, внизу превью — плотный «туман». Кнопка «Развернуть» / «Свернуть» с иконкой-шевроном поверх нижней части кадра, внутри рамки; после раскрытия туман скрывается, после сворачивания страница прокручивается к превью. Высоту превью — на .case-media-tall__clip через --case-tall-max (по умолчанию min(70vh, 32rem)). -

-
-
-
- Демо: длинный вертикальный скрин интерфейса - -
-
- -
-
-
Длинное изображение img-long.webp (исходник PNG рядом в public/assets/template-elements-demo/).
-
- -

Галерея: сетка по ширине контента

-

- Колонок на широком экране задаётся на figure: атрибут style="--case-gallery-cols: 3". Ниже порогов сетка схлопывается до двух и одной колонки. Клик по миниатюре открывает общий viewer кейса. -

- - -

Галерея: сетка на ширину страницы с боковыми отступами

-

- Класс case-media-gallery--wide — та же логика выхода за колонку, что у одиночного case-media--wide. Здесь четыре колонки на широком экране (--case-gallery-cols: 4). -

- - -

Слайдер: одна картинка, стрелки и точки

-

- Блок .case-media-slider показывает слайды по одному: навигация стрелками «пред/след», - пагинация точками (активная — акцентным цветом). Поддерживается клавиатура (←/→, Home/End на точках), - тач/мышь-свайп и ленивая подгрузка соседних кадров через data-src. Клик по активному - кадру открывает общий viewer кейса. -

-
-
-
-
- Слайдер, кадр 1 -
-
- Слайдер, кадр 2 -
-
- Слайдер, кадр 3 -
-
- Слайдер, кадр 4 -
-
-
- - -
-
-
- - - - -
-
- -

- Тот же слайдер, но с модификатором case-media--wide — выходит за колонку - контента, как одиночные широкие картинки. Кнопки пред/след и точки ведут себя так же. -

-
-
-
-
- Слайдер wide, кадр 1 -
-
- Слайдер wide, кадр 2 -
-
- Слайдер wide, кадр 3 -
-
- Слайдер wide, кадр 4 -
-
- Слайдер wide, кадр 5 -
-
- Слайдер wide, кадр 6 -
-
- Слайдер wide, кадр 7 -
-
-
- - -
-
-
- - - - - - - -
-
- -

- Слайдер с горизонтальными (широкими) кадрами одного размера — все картинки - 1024×800. -

-
-
-
-
- Широкий слайдер, кадр 1 -
-
- Широкий слайдер, кадр 2 -
-
- Широкий слайдер, кадр 3 -
-
- Широкий слайдер, кадр 4 -
-
- Широкий слайдер, кадр 5 -
-
- Широкий слайдер, кадр 6 -
-
- Широкий слайдер, кадр 7 -
-
-
- - -
-
-
- - - - - - - -
-
- -

- Тот же слайдер, но с вертикальными кадрами одного размера — все картинки - 600×800. -

-
-
-
-
- Вертикальный слайдер, кадр 1 -
-
- Вертикальный слайдер, кадр 2 -
-
- Вертикальный слайдер, кадр 3 -
-
- Вертикальный слайдер, кадр 4 -
-
- Вертикальный слайдер, кадр 5 -
-
- Вертикальный слайдер, кадр 6 -
-
- Вертикальный слайдер, кадр 7 -
-
-
- - -
-
-
- - - - - - - -
-
- -

- Отдельный пример: переключатель режима анимации смены кадров — - slide (сдвиг), fade (кроссфейд) и none (без перехода). - Режим задаётся атрибутом data-slider-anim на фигуре. -

-
-
- - - -
-
-
-
- Пример анимации, кадр 1 -
-
- Пример анимации, кадр 2 -
-
- Пример анимации, кадр 3 -
-
- Пример анимации, кадр 4 -
-
-
- - -
-
-
- - - - -
-
- -

Callout: важный абзац с эмоджи

- - -

Видео: карточка с тенью и фиксированными малыми углами

-
-
- -
-
Пример видео-карточки в стиле кейса.
-
- -

Результат

-

- Шаблон готов для копирования в новый кейс: остаётся заменить рыбу на фактический текст, подставить реальные ссылки и медиа проекта. -

-
-
- + +
+
+ + +
+ + + +
+
+ +
+ + +
+
+

Demo · template

+

Case Study Example: Demo Elements

+

Text blocks and elements for quickly building a longread

+

The media for the demo is located in public/assets/ (the page builder does not copy them). See public/assets/README.md.

+ +

Context

+

+ This section shows an example of a text block for the introduction. Here, you can briefly describe the product, the audience, and the project’s limitations. + The text is neutral: the goal is to quickly sketch out the structure and check the page’s visual rhythm. +

+ +

Task

+

+ We need to put together a demo longread with the main UI elements: link cards, media blocks, and examples of content layout. + It’s also important to check how the blocks behave on narrow and wide screens. +

+ +

Solution

+

Below are some ready-made examples that you can copy into real-world projects.

+ +

Link Cards

+ + +

Image: 50% of the original size (no preview)

+
+ Full-size demo GIF +
Image at reduced actual size, centered.
+
+ +

Image: width of the content (with preview)

+
+ Demo images based on content width +
Image matches the width of the content. Clicking opens the viewer.
+
+ +

Image: slightly wider than the content (with preview)

+
+ The demo image is wider than the content +
The image extends slightly beyond the content column.
+
+ +

Long screenshot: collapsed height and button inside the preview

+

+ Block data-case-tall-media: width is specified by the data-case-tall-width="wide" (like a “wide” image) or content (per column). When collapsed, the top part of the frame is visible; at the bottom of the preview, there’s a solid “fog.” An “Expand” / “Collapse” button with a chevron icon appears above the bottom of the frame, inside the border; when expanded, the fog disappears; when collapsed, the page scrolls back to the preview. The preview height is set .case-media-tall__clip via --case-tall-max (default min(70vh, 32rem)). +

+
+
+
+ Demo: Long vertical screenshot of the interface + +
+
+ +
+
+
Long image img-long.webp (source PNG next to it in public/assets/template-elements-demo/).
+
+ +

Gallery: grid based on content width

+

+ The number of columns on a wide screen is set via figure: the style="--case-gallery-cols: 3". Below these thresholds, the grid collapses to two or one column. Clicking on a thumbnail opens the general case viewer. +

+ + +

Gallery: Full-page grid with side margins

+

+ The case-media-gallery--wide — same logic for extending beyond a column as in the single-column case-media--wide. Here, there are four columns on a wide screen (--case-gallery-cols: 4). +

+ + +

Slider: one image, arrows, and dots

+

+ Block .case-media-slider displays slides one at a time: navigation using “prev/next” arrows, + paging using dots (the active one is highlighted in accent color). Keyboard support (←/→, Home/End on dots), + touch/mouse swipe, and lazy loading of adjacent frames via data-src. Clicking on the active + slide opens the general case viewer. +

+
+
+
+
+ Slider, Frame 1 +
+
+ Slider, Frame 2 +
+
+ Slider, Frame 3 +
+
+ Slider, Frame 4 +
+
+
+ + +
+
+
+ + + + +
+
+ +

+ The same slider, but with the modifier case-media--wide — extends beyond the content column, + like single wide images. The previous/next buttons and dots behave the same way. +

+
+
+
+
+ Wide slider, frame 1 +
+
+ Wide slider, frame 2 +
+
+ Wide slider, frame 3 +
+
+ Wide slider, frame 4 +
+
+ Wide Slider, Frame 5 +
+
+ Wide slider, frame 6 +
+
+ Wide slider, frame 7 +
+
+
+ + +
+
+
+ + + + + + + +
+
+ +

+ Slider with horizontal (wide) frames of the same size—all images + 1024×800. +

+
+
+
+
+ Wide Slider, Frame 1 +
+
+ Wide Slider, Frame 2 +
+
+ Wide Slider, Frame 3 +
+
+ Wide Slider, Frame 4 +
+
+ Wide slider, frame 5 +
+
+ Wide Slider, Frame 6 +
+
+ Wide Slider, Frame 7 +
+
+
+ + +
+
+
+ + + + + + + +
+
+ +

+ The same slider, but with vertical frames of the same size—all images + 600×800. +

+
+
+
+
+ Vertical slider, frame 1 +
+
+ Vertical slider, frame 2 +
+
+ Vertical slider, frame 3 +
+
+ Vertical slider, frame 4 +
+
+ Vertical slider, frame 5 +
+
+ Vertical slider, frame 6 +
+
+ Vertical slider, frame 7 +
+
+
+ + +
+
+
+ + + + + + + +
+
+ +

+ A separate example: a toggle for the frame-switching animation mode— + slide (slide), fade (crossfade), and none (no transition). + The mode is set by the attribute data-slider-anim on the shape. +

+
+
+ + + +
+
+
+
+ Animation example, frame 1 +
+
+ Animation example, frame 2 +
+
+ Animation example, frame 3 +
+
+ Animation example, frame 4 +
+
+
+ + +
+
+
+ + + + +
+
+ +

Callout: Important paragraph with an emoji

+ + +

Video: Card with a shadow and fixed small corners

+
+
+ +
+
An example of a case-style video card.
+
+ +

Result

+

+ The template is ready to be copied into a new case study: all that’s left is to replace the fish with the actual text and insert the project’s real links and media. +

+
+
+

Portfolio

@@ -1089,7 +1089,7 @@
- +

Contact

@@ -1101,13 +1101,14 @@
- + - - - + + + - - - - - - - + + + + + + + diff --git a/public/en/cookie-policy/index.html b/public/en/cookie-policy/index.html index 14c181a..884383e 100644 --- a/public/en/cookie-policy/index.html +++ b/public/en/cookie-policy/index.html @@ -151,7 +151,7 @@
- +
-
-
- - -
- - - -
-
- -
- +
+
+ + +
+ + + +
+
+ +
+
- + diff --git a/public/en/index.html b/public/en/index.html index 4d28cdb..f94a2bc 100644 --- a/public/en/index.html +++ b/public/en/index.html @@ -110,7 +110,7 @@
- +
-
- -
+
+ +
@@ -1329,10 +1329,11 @@
- + diff --git a/public/en/resume/index.html b/public/en/resume/index.html index 389ae21..3f4eb93 100644 --- a/public/en/resume/index.html +++ b/public/en/resume/index.html @@ -5,9 +5,9 @@ - Резюме — Николай Мамадаев + Resume — Nikolai Mamadaev - - + - + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Figma · Plugin

+

AI Assistant

+

A Figma plugin with AI features

+ +

+ +

+ +

Context

+

+ +

+ +

Task

+

+ +

+ +

Solution

+

+ +

+ +

Result

+

+ +

+
+
+ + {{> mini-projects-related}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/ai-platform-primo-rpa-2.en.html b/src/pages/cases/ai-platform-primo-rpa-2.en.html new file mode 100644 index 0000000..b6db16a --- /dev/null +++ b/src/pages/cases/ai-platform-primo-rpa-2.en.html @@ -0,0 +1,422 @@ + + + + + + + AI Server in Primo RPA — Case Study (Draft 2) + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Product Design · AI

+

User Interface Development for the Primo RPA AI Server

+

+ Intelligent document
processing platform + and AI agent orchestration +

+ +
+

Overview

+

+ A service was launched within the company that significantly improved the workflow for text recognition models on documents: loading a dataset from company documents, field tagging, model training, and the subsequent use of the model in other products. This approach provided higher recognition quality and met security requirements—data remained within the company’s network. As work on the product progressed, functionality was added to fine-tune the base neural networks for the company’s specific tasks and to work with skills such as summarization, extraction, generation, and other scenarios. +

+

+ I was invited to join the project as a UX/UI designer; prior to that, the developers had been building the interface on their own. As a result of this work, the service’s barrier to entry was lowered—significantly more people could use the product without specialized training in AI and OCR. +

+ +
+ +
+

Before and After

+

+ The service was built using Ant Design on top of React with the Hope UI visual theme for Bootstrap. The company already had several web products and wanted to unify and refresh the user interface, so the development team relied on components from those systems. +

+ +

+ I immersed myself in the product and, together with the team, analyzed all the functionality in detail. +

+ +

+ I mapped out user flows based on current scenarios: these showed the team where confusion arose in the interface and user journeys. Based on this, we redesigned the configuration processes themselves: we automated and hid some functions to reduce the risk of errors and eliminate unnecessary routine tasks. +

+

+ The new approach changed both the perception of the product and the setup process. The interface guides users through the setup steps without disrupting their usual workflows: a fully linear wizard isn’t feasible here—users still need to go back and refine settings to ensure high-quality results. +

+

Questions for the team regarding the current status

+

The answers will help quantify the impact of the implementation with facts and figures.

+
    +
  • Has the number of support requests decreased?
  • +
  • Are users able to complete project setup on their own from start to finish?
  • +
  • Does the new interface allow users to create new types of projects based on existing patterns?
  • +
+
+ +
+

Interface Patterns

+

+ Below are the key areas of the product: how they support learning and model-working scenarios, and how they differ from the previous approach. +

+ +

Field Mapping

+

+ Mapping links document fields to the target data structure. It was important to make the relationship visual and reversible so that users don’t lose context when making edits. +

+
+
+ +
+
Field Mapping in the Interface
+
+ +

Dataset, Training, and Quality Control

+

+ The dataset editor, training launch, and quality screens form a single mental path: data preparation → training → result verification. +

+ +
+ Dataset Editor — Current Version of the Interface +
Dataset Editor—Current Version
+
+
+ Dataset Editor — Previous Version for Comparison +
Previous version of the editor
+
+
+ Model Training Screen Using a Dataset +
Training on a dataset
+
+
+ Quality Control of the Model After Training +
Quality and result verification
+
+ +

Inference in the project

+

+ Special Focus: Running and Monitoring the Model Within the Project: The user must understand the status of the inference run and stay in sync with the rest of the settings. +

+
+ Model inference interface within the project +
Inference in the project
+
+
+
+
+ Inference in the project — full-screen interface + +
+
+ +
+
+
Full vertical screenshot of the inference screen
+
+
+ Previous version of the inference screen in the project +
Previous version of inference
+
+ + + +

Full-Screen Mode and Import

+

+ This isn’t about “long tasks,” but rather about processes in a separate context: some block work on the project until they’re finished, while others run in parallel in a separate window, allowing you to continue configuring project settings. We moved this functionality to a separate window because there were several entry points for these tasks, and a standard modal wasn’t enough—you had to complete a separate process elsewhere and then return to the project settings. This approach reduced the amount of development and testing required. +

+

+ Below are three full-screen canvas options: import in a separate window, panel mode, and the minimalist “zen” mode. +

+
+ A modal window for importing a dataset on a separate screen +
Import in a modal window
+
+
+ Full-screen mode with side panels +
Full-screen mode with panels
+
+
+ Full-screen mode without distracting panels +
Minimal mode without unnecessary chrome
+
+ +

Future Development

+

+ Several major items remained on the roadmap: scenarios related to the LLM (lists, statuses, actions), a step-by-step training wizard with progress tracking and undo functionality, and a full-featured OCR engine with region marking and on-page quality previews. These were not included in the minimum set for the interface’s first production release, but the established patterns should accommodate them without major rework. +

+
+ +
+

Process and Handoff

+

+ Work proceeded through regular synchronization with the development team: mockups, specifications, and a phased handoff to the front end. After I left the project, the team looked for the next designer and structured the onboarding process based on the existing design assets and layout guidelines. +

+ +

Questions for the Next Designer

+
    +
  • What turned out to be unclear during the first two weeks on the project?
  • +
  • Which artifacts and handover guidelines proved most useful?
  • +
  • What had to be redesigned and why.
  • +
  • How would you describe the current state of UX in three sentences?
  • +
+
+ +
+

Conclusion

+

+ The AI Server interface in Primo RPA was transformed from an “engineer-oriented developer interface” into a product with intuitive configuration logic and user guidance. The focus on user flows and routine automation reduced the implementation burden and paved the way for broader adoption within the company and among clients. +

+
+
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + diff --git a/src/pages/cases/ai-platform-primo-rpa-v2.en.html b/src/pages/cases/ai-platform-primo-rpa-v2.en.html new file mode 100644 index 0000000..6bfd9e5 --- /dev/null +++ b/src/pages/cases/ai-platform-primo-rpa-v2.en.html @@ -0,0 +1,551 @@ + + + + + + + AI Server in Primo RPA — Case Study + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-case}} + {{> fab-stack}} +
+
+

Product Design · AI

+

Simplified Primo RPA AI Server setup: customers configure the AI service without an implementation team

+

+ A platform for intelligent document
+ processing and AI agent orchestration. Requests to the implementation team have dropped by 40%, and the time required to set up the first project has been reduced from ~3 days to ~4 hours. +

+ +
+ The updated dataset markup editor—the service's main screen following the redesign +
+ +
+
Product
+
AI Server. Neural networks within the company’s internal network, configured via a web interface
+
Role
+
UX/UI Designer (the only one on the project)
+
Objective
+
Lower the barrier to entry so that the client can configure the service themselves
+
Stack
+
Ant Design + React, styled with Hope UI
+
Format
+
Redesign of a live product; releases continued uninterrupted
+
+ +
+

Only experts could handle the configuration. This slowed down sales

+

+ The AI Server is deployed on the client’s internal servers. The product was actively tested, and the feedback revealed an unpleasant truth: only experts and the Primo RPA implementation team could configure it. Every new client consumed hours of technical support. The product was losing its appeal and didn’t scale well. +

+ +

+ I started by getting to know the team and the configuration experts. I divided the scenarios into primary and secondary ones, created a visual representation of user behavior, and worked with the development team to identify areas where the interface could be simplified. I had already worked with AI and similar web platforms, so I quickly got up to speed on the subject matter and was able to speak the same language as the development team. +

+
+ +
+

Constraints

+
    +
  • Customers were already using the product. It wasn’t possible to halt development and completely rebuild the interface.
  • +
  • Changes had to be incorporated into the release plan; no one allocated time for a separate “redesign sprint.”
  • +
  • Strict tech stack: Ant Design on top of React, styled after Hope UI. We only created new components as a last resort; first, we made the most of the existing library.
  • +
+
+ + + +
+

Dataset Editor: the screen where users spend most of their time

+

+ This is where users spend most of their time. Annotating fields on hundreds of images is monotonous work, but the quality of the data used to train the model depends on it. The previous editor didn’t fit the overall style, looked cluttered, and made working with fields confusing. +

+

+ I broke the editor down into microscenarios, organized them by priority and interdependencies. Together with the team, we designed a smoother and more intuitive user experience, reserved space for future features, and aligned the design with the service’s overall style. +

+
+ Dataset Markup Editor — the document being marked up in the center, with field and tool panels on either side +
Dataset markup editor—the document being marked up is in the center, with field and tool panels on either side
+
+

+ The page became symmetrical. Almost all the space is devoted to the image being annotated, and actions are grouped by panels: the desired function can be found quickly. +

+
+ A schematic overview of the editor's layout—the central workspace and side panels +
Schematic layout of the editor—central workspace and side panels, default mode
+
+

+ For advanced users, I’ve added a “Full Screen” mode. The side panels collapse, and you work using keyboard shortcuts and the bottom panel. This is a lifesaver on small monitors. +

+
+ Full-screen editor mode with side panels open +
Full-screen editor mode with side panels expanded
+
+
+ Full-screen mode without panels—only the document being marked up and the bottom panel +
Full-screen mode without panels—only the document being edited and the bottom toolbar are visible on the screen
+
+
+ Four Full-Screen Mode Frame Options +
Four full-screen layout options: both panels, no panels, left panel only, right panel only
+
+
+ Bottom toolbar — switch between images and quick markup actions +
Bottom toolbar—switch between images and quick markup actions
+
+
+ +
+

Dozens of fields on a single scan, without sacrificing document space

+

+ Related task: Configure unique field settings for the dataset. A large area is needed for the document scan, with dozens of fields, each having its own types and dependent settings. +

+
+
+ +
+
Field mapping prototype—the user selects a field on the document scan and configures its parameters in a compact panel
+
+

+ The interface turned out to be compact. The mechanics aren’t immediately obvious at first glance, but after a short learning curve, working with it becomes quick and comfortable. +

+
+ +
+

Training cards: a pattern that has spread throughout the product

+

+ After annotating the dataset, the model undergoes fine-tuning. We analyzed all user actions and explored several page layouts. We settled on a card feed. +

+
+ Model Training Section — Vertical Card Strip +
The model training section is a vertical card feed, with a new training setup card at the top
+
+

+ At the beginning of the feed is a configuration card: the annotation results for the active dataset, parameters, and the option to start fine-tuning. +

+
+ Training Configuration Card — Dataset Quality Matrix and Run Parameters Block +
Training configuration card—dataset quality matrix and launch parameters section
+
+ +

+ A separate card appears for each running process. You can start multiple processes with different parameters and compare which configuration performed better. +

+
+ Active Learning Process Card — Status, Progress, and Metrics +
Card for a running training process—status, progress, and metrics organized into logical blocks
+
+
+ Learning Process Card Template +
The framework of a training process card—a layout of information blocks and actions
+
+

+ Cards can be collapsed; the title and status remain visible in the header. +

+
+ A collapsed training card—a single line showing the name and status of the process +
Collapsed training card—a single line showing the process name and status
+
+

+ Patterns from these cards were later applied to other sections of the product. It became easier to maintain a consistent style. +

+
+ +
+

Long processes—in a separate tab

+

+ Some tasks run in parallel with other work. For such scenarios, a modal window opens on a separate page. +

+ +
+ Importing a dataset in a modal window on a separate page +
Importing a dataset in a modal window on a separate page—a full-screen upload form
+
+

+ Meanwhile, a placeholder with a button to navigate to the process remains on the project page. +

+
+ Active Import Placeholder Within a Project +
Placeholder for active import within the project—progress indicator and "Go to Process" button
+
+
+ +
+

What I Decided Not to Do, and Why

+
    +
  • I chose not to disable buttons on individual pages during active processes. A modal on a separate page is technically simpler, and progress is visible in the adjacent tab.
  • +
  • I didn’t create new components except in extreme cases. The ready-made Ant Design library sped up development and kept the interface consistent.
  • +
  • I didn’t remove the editor’s side panels entirely; instead, I made them collapsible. Beginners need on-screen hints, while advanced users need as much space as possible for their document.
  • +
  • I didn’t set up a separate design system. The product already had a framework, so I passed links to the existing user flows in Figma to the development team.
  • +
+

Handoff to Development

+

+ Once a week, we discussed the design with the team: the task list, priorities, and deadlines aligned with release plans. I went over the details of the mockups one-on-one with the front-end developer and provided feedback after the layout was completed to ensure the result matched the intended behavior. +

+
+ +
+

Result

+ +
    +
  • Requests to the implementation team during the setup phase decreased by 40%. Clients complete the basic setup on their own.
  • +
  • 7 out of 10 new clients set up their first project without technical support. Before the redesign, it was 1 out of 10.
  • +
  • Setting up the first project: from ~3 days to ~4 hours.
  • +
  • Over 30 screens were redesigned: navigation, dataset editor, model training, and data import.
  • +
  • We established design patterns that allow functionality to be expanded without major rework.
  • +
  • The company hired a second designer. I brought her up to speed and oversaw the results; after she became familiar with the project, it was entirely transferred to her responsibility.
  • +
+
+ +
+

Conclusions

+
    +
  • The rigid framework turned out to be an accelerator rather than a limitation: the ready-made component library allowed us to focus on scenarios rather than pixels.
  • +
  • The most valuable insights came from configuration experts. Next time, I would involve the implementation team even earlier.
  • +
  • Handing the project over to a new designer confirmed that the established patterns work and can be explained and maintained without the original author.
  • +
+
+
+
+ + {{> projects-related}}{{> projects-section}} + {{> contact-section}} + {{> footer}} + {{> cookie-notice}} + {{> nav-more-floating}} + + diff --git a/src/pages/cases/ai-platform-primo-rpa.en.html b/src/pages/cases/ai-platform-primo-rpa.en.html new file mode 100644 index 0000000..2d03a9a --- /dev/null +++ b/src/pages/cases/ai-platform-primo-rpa.en.html @@ -0,0 +1,593 @@ + + + + + + + AI Server in Primo RPA — Case Study + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Product Design · AI

+

User Interface Development for the Primo RPA AI Server

+

+ Intelligent document
processing platform + and AI agent orchestration +

+ +
+

Overview

+

+ The AI Server product is deployed on clients’ internal servers. It enables the use of neural networks within the company’s internal network and is configured via a web interface. +

+

+ I was invited to join the project as a UX/UI designer. The product was in the active testing phase; feedback from customers made it clear that the configuration was too complex: only experts and the Primo RPA implementation team could handle it. The complex configuration reduced the product’s appeal and hindered scaling. +

+

+ My task was to simplify the configuration process and lower the barrier to entry, thereby reducing the workload on technical support and the implementation team—so that customers could configure the service themselves to meet their specific needs. +

+ +

+ Below is an in-depth look at the product, examples of completed tasks, and interface patterns. +

+
+ +
+

Overview

+

+ I began by getting to know the team: who was responsible for the product, who was responsible for implementation, and how everything was currently organized. I spoke with configuration experts, categorized key and secondary scenarios, and compiled a visualization of user behavior. I worked closely with the development team to identify areas where the interface could be simplified and the setup process accelerated. +

+ +

+ The product was already in use by customers, so we couldn’t halt development and completely rebuild the interface. I had to decide in what order and which parts to address in the redesign. I incorporated the most significant changes into the current development plan without disrupting the release schedule. +

+

+ I had to plan the interface changes with the framework in mind. At the time, it was + Ant Design on top of React, styled after + Hope UI. +

+

+ I only had to create new components as a last resort; the priority was to reuse the existing library. This is evident in the final screens: the interface is mostly built from ready-made blocks, rather than from scratch. +

+
+ +
+

Completed Tasks

+

+ Interface elements that I redesigned or built almost from scratch. Below are individual tasks from the project that I wanted to showcase in my portfolio—not an overview of the entire product. +

+ +

Main navigation of the service

+

+ The service used a layout common for admin panels: a side menu on the left and content on the right. The screenshot shows that this page structure didn’t make effective use of the available screen space. When you open the project, the navigation for the project sections appears on the left—intermixed with the main navigation—which confuses the user. This situation needed to be fixed. +

+
+ Previous main navigation page for the AI Server service +
Previous Navigation
+
+
+ Updated Main Navigation for the AI Server Service +
Updated navigation
+
+

+ The updated navigation is now more compact and remains familiar to most users. There is significantly more space for content. As you’ll see later, projects will have their own separate navigation that won’t overlap with the main navigation. At the same time, the service’s overall aesthetic has improved. +

+

Navigation Within a Specific Project

+

+ Users retain access to both the navigation within a project and the service’s main navigation. Different project types contain varying numbers of items, and this solution allows for their optimal placement. +

+
+ Navigation within the NLP project and the service's main navigation +
NLP Project
+
+
+ Navigation within an OCR project and the service's main navigation +
OCR project
+
+

+ I’d like to highlight the design of the navigation items. Visually, it subtly suggests that it’s more convenient to go through the setup step by step, but the sections still function as regular tabs: you can switch between them in any order. +

+
+ Secondary navigation for the project with arrow-shaped items +
Shape of navigation items
+
+

Dataset Annotation Editor

+

+ This is the screen where users spend the most time. Annotating fields across hundreds of images is monotonous work, but the quality of the data used to train the model depends on it. The previous editor stood out sharply from the service’s overall style: it looked cluttered and was confusing in places, especially when working with fields. +

+
+ Dataset Editor — Previous Version for Comparison +
Previous version of the dataset editor
+
+

+ I broke down the editor into microscenarios, organized them by priority and how they relate to each other. The team and I discussed how to make the user experience smoother and more intuitive. In the new page structure, I reserved space for new functionality and incorporated the same design patterns used throughout the rest of the service. The editor’s design now aligns with the overall style. +

+
+ Dataset Editor — Current Version of the Interface +
Updated version of the dataset editor
+
+

+ The schematic sketch shows that the page has become symmetrical: almost all the space is devoted to the image being marked up. Actions are grouped by panels—making it easier to find the desired function. +

+
+ Dataset Editor Wireframe — Default Mode +
Frame: Default mode
+
+

+ Added a “Full Screen” mode. Advanced users usually hide unnecessary panels and work with markup using keyboard shortcuts and the bottom panel. The side panels can be collapsed when more space is needed for the image—this is especially important on smaller monitors. +

+ + +

+ The bottom toolbar lets you switch between images and perform quick actions. +

+
+ The Dataset Editor's Main Toolbar +
Bottom toolbar
+
+ +

Model training configuration cards

+

+ After labeling the dataset, the model can be fine-tuned. As usual, our team broke down all user actions for this task. We created several layout options for this page; the one with a card feed turned out to be the most successful. +

+
+ Overview of Training Configuration Cards in the Project +
View of the Model Training section
+
+

+ At the top of the feed, the user sees a training configuration card: it displays the annotation results for the active dataset, allows the user to set parameters, and initiates fine-tuning. +

+
+ Training Configuration Card +
Training Configuration Card
+
+

+ The card includes a separate section with an assessment of the dataset’s annotation quality and a section with parameters to configure before starting training. +

+ +

+ A separate card will appear below for each process that is started. You can run multiple processes with different parameters and then compare which configuration performed better. +

+
+ Model Learning Process Card +
Training Process Card
+
+

+ Within the card, information and actions are organized into logical blocks. We considered various layout options and ultimately settled on a scheme that proved to be more user-friendly than the others. +

+
+ Learning Process Card Wireframe +
Wireframe of the Learning Process Card
+
+

+ The cards can be collapsed. For convenience, the name and status are displayed in the header. +

+
+ Collapsed Training Settings Card +
Collapsed Card
+
+

+ After refining these cards, we identified patterns that were later used in other sections of the product. This makes it easier to maintain a consistent style across the interface. +

+ +

Field Parameter Configuration

+

+ On one of the pages in the project section, we needed to allow users to configure unique field parameters for a dataset. The editor required a large area for an image (a scanned document), and there could be dozens of fields, each with its own dependent parameters and types. +

+

+ The video shows the prototype of the finished solution in action. +

+
+
+ +
+
Field mapping in the interface
+
+

+ The interface turned out to be compact and clean. The mechanics aren’t immediately obvious, but after a brief learning curve, users find it comfortable to use. +

+

+ Developing the editor proved to be an interesting and challenging task for me: there were many drafts and different behavior options. In the end, we settled on a version that met all the requirements my team and I had defined. +

+ +

Modal windows on a separate screen

+

+ In the service, some tasks need to be performed alongside other work. For such scenarios, we implemented the following: a modal window opens on a separate page. +

+
+ A modal window for importing a dataset on a separate screen +
Importing a dataset in a modal window
+
+

+ A placeholder is displayed on the project page: the process is in progress, with a button next to it to navigate to it. +

+
+ Importing a dataset within a project +
Importing a dataset within a project
+
+

+ These placeholders appear in several sections of the project—depending on whether you can work with that section while the task is active. +

+ +

+ This approach turned out to be technically simpler than selectively disabling buttons on individual pages. +

+ +
+ +
+

Handoff to Development

+

+ Once a week, the team met to discuss the design. The calls were long but productive. We created a weekly list of design tasks, adjusting priorities and deadlines to align with release plans. +

+

+ I created the designs in Figma and sent links to the finished user flows to the development team. We didn’t set up a separate design system or UI kit—the product already had a ready-made framework. +

+

+ From time to time, I would have one-on-one calls with the front-end developer to clarify details about the mockups or explain how the interface should behave. After the layout was completed, I provided feedback on revisions to ensure the result matched the intended behavior and appearance of the interface. +

+
+ +
+

Change in Designers

+

+ I managed this project alongside others, so I had to balance my workload. The company hired a new designer—my task was to bring her up to speed and oversee the results of her work on each task. Once she was up to speed, responsibility for the project shifted entirely to her. +

+
+ +
+

Result

+

+ The Primo RPA AI Server interface now has a consistent look and feel. It is user-friendly even for those who are not yet experts in AI. The interface is designed to accommodate future changes, allowing for the addition of new features without major overhauls. +

+
+
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/card-columns-obsidian.en.html b/src/pages/cases/card-columns-obsidian.en.html new file mode 100644 index 0000000..8cb4e43 --- /dev/null +++ b/src/pages/cases/card-columns-obsidian.en.html @@ -0,0 +1,529 @@ + + + + + + + Card Columns, a plugin for Obsidian Bases: a case study + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Obsidian Bases · Plugin

+

+ A Kanban view for Obsidian Bases
+ that leaves your notes untouched +

+

+ Card Columns: Notes as cards in columns,
+ filtered by AND/OR tags with just two clicks +

+ + + +
    +
  • Role: Product Design and Development
  • +
  • Platform: Obsidian Bases
  • +
  • Status: Working plugin, open source (MIT)
  • +
  • Team: Solo, side project
  • +
  • Status: Draft response, to be replaced
  • +
+ +
+ Question for the author +

+ How long did it take from the initial idea to a working version? Weeks? A month of weekends? +

+

+ Draft answer: I put it together in three weeks in the evenings, then spent another month refining it while + working on my own projects. Replace with the actual time. +

+
+ +

+ Obsidian now has Bases, a separate file type that displays notes not as text, but + in various formats: tables, cards, and trees. The standard card view didn’t work for me: it’s + flat, with no grouping, and it’s hard to make sense of when there are hundreds of notes. I wanted to see them + arranged in columns, like a Kanban board, but without the extra overhead. That’s how the Card Columns view plugin came about. +

+ +
+

Context

+

+ A “Bases” is neither a note nor a separate database. It’s a query to the vault: you select + notes using a filter, and the framework displays them in the chosen view. Obsidian itself has + a built-in card view, but it’s one-dimensional: no grouping by properties, no + proper filtering. I decided to create my own view that integrates into the + Bases toggle alongside the default ones. +

+

+ The main limitation was in the framework itself: the plugin doesn’t store data, but rather renders what + the Bases query returns (Sort, Filter, Properties, Search from the toolbar). This means that all the logic + for data retrieval remains with Bases, and my task is solely to display and navigate the results. +

+ +
+ +
+

Why not use a ready-made solution?

+

+ Before writing any code, I checked what was already available. Three options, none of them worked: +

+

+ The default Bases card view. + It displays a continuous stream of cards without grouping. + When there are over a hundred notes, it becomes a feed where you have to scroll and squint at the titles. + I ruled that out first. +

+

+ Kanban plugins from the community. + Most come with their own storage system: + the board exists separately from the vault, and notes are duplicated. This results in a second database + that needs to be synchronized. I didn’t need that. +

+

+ The neighboring bases-kanban. + The closest in spirit: it hooks into Bases to create + a Kanban board. But it writes to the notes: dragging a card changes the frontmatter. For a view plugin, + this is a risk, which I’ll discuss below. +

+ + +
+ Question for the author +

+ Did you actually install and test other people’s plugins, or did you just go by the descriptions? Which + ones did you look at specifically? +

+

+ Preliminary answer: I installed three of them, ran them for a week on my database, then uninstalled them. I looked at the source code for bases-kanban + but didn’t install it. Replace with actual information; include the plugin names. +

+
+
+ +
+

Task

+

+ Design a view for Bases that displays notes as cards arranged in columns and allows you to + quickly select the ones you need. Strict constraint: the plugin does not write anything to the notes and does not store + its own state, and sorting, filtering, properties, and search from the standard Bases toolbar must + work as before. +

+ +
+ +
+

Solutions

+

+ The plugin adds a “Columns” view to Bases. Cards are built from the results of a Bases query; + grouping is defined by a property, and filtering is done via clickable tags. Next, there are five options + that determine the result. Each one includes something I decided against. +

+ + +

Grouping by any property

+

+ Columns are generated using the “Group by” option in the Bases toolbar, by tag, status, category, or any + frontmatter property. Change the property in the query, and the board reloads automatically. This way, a single + database covers different perspectives: projects by status, notes by tags, tasks by + priority. +

+ +

Tag filter by AND and OR

+

+ This is exactly what the plugin was designed for. Below the toolbar, there are tag icons; when clicked, they + filter cards across all columns at once: +

+
    +
  • Left-click on a tag to show only that tag (resets the other filters).
  • +
  • Left-click on the next tag to show notes with ANY of the selected tags (OR mode).
  • +
  • Ctrl+Click or right-click to switch tags without resetting the selection.
  • +
  • The OR/AND button: toggle between “any of” and “all of” for multiple tags.
  • +
  • All: Clear all filters.
  • +
+

+ The combination of “OR—add with a left-click + exact toggle via Ctrl” turned out to be intuitive: + quick selection doesn’t disrupt what’s already selected. I immediately rejected the alternative—moving the filter to a modal window— + because it requires an extra click and loses the context of what’s already been filtered. +

+

+ The choice here isn’t about the feature itself, but where it lives. I chose the pills below the toolbar instead of + a separate filter window because filtering by tags is an action performed at every step of working + with the database. A modal window turns it into an interrupted workflow: open, configure, close, check. + The pill-shaped icons keep the result right in front of you, and the filter status is always visible. +

+ + +

Cards and Covers

+

+ Properties such as chips, text, tags, links, Booleans, and dates are displayed for each note. You can + show a cover: from the first image in the note or from a separate property. You have + full control over the cover, including aspect ratio (Auto, 1:1, 3:2, 4:3, 16:9), border, fit + (cover/contain), orientation, and position on the card (above the title, below it, at the end). +

+ +

Solution: Settings have been moved out of the code

+

+ At first, the parameters were hardcoded for my database. This was a mistake: the view would stop working + for someone else’s scenario. I moved everything to the gear menu, dividing it into four sections so that the view + could adapt to different databases, rather than just my single use case. More than 15 parameters. +

+
+ Show the full list of settings +

General

+
    +
  • Where to open the card: active panel, pop-up window, new tab, split to the right / down.
  • +
  • Card width (px).
  • +
  • Columns per group (1–6), grid within a column.
  • +
  • Zebra columns (alternating background colors for easy scanning).
  • +
  • Masonry layout (cards fill vertical gaps).
  • +
+

Title

+
    +
  • Title wrapping, bold title, font size (px).
  • +
+

Properties

+
    +
  • Chip layout: stack (vertical) or grid (compact in a row).
  • +
  • Wrap multi-line values, font size.
  • +
  • Date and date-time formats + locale (Moment.js).
  • +
+

Cover

+
    +
  • Source: none / first image in the post / cover property.
  • +
  • Style (borderless / with border), aspect ratio, orientation, fit, position on the card.
  • +
+
+ +
+ Question for the author +

+ Is it true about the hard-coded parameters? If not, replace it with the real reason for moving them + to the settings: user requests, multiple databases with different structures, whatever. +

+

+ Preliminary answer: Yes, the first version was tailored to my database; the settings were added when + I needed to make the plugin available externally. I’ll check and fix it. +

+
+ + +

Works within the standard toolbar

+

+ The view hooks into the BasesView framework, so sorting, filtering, properties, and search from + the Bases toolbar remain functional. The plugin only renders the query results; the data is not + duplicated and does not depend on a separate storage. +

+ +
+ +
+

The Result and How I Tested It

+

+ This view solved my problem: a Bases query now reads like a board, rather than a flat stream + of cards. Grouping by property + filtering by AND/OR tags—exactly what the default + view was missing. Everything runs on the Bases query, so moving the vault and syncing don’t + break anything. +

+ +

Metrics: number of steps to filter

+

+ The main task I used to measure success: filter notes by two tags and find the right + card. In the standard card view, this involves scrolling through the feed and scanning the titles with your eyes. In + Columns, two clicks on the pills and the column is right in front of you. +

+ +
+ Question for the author +

+ Can you run this test for real? Time 10 repetitions of the task: the default + view versus Columns. Or count the exact number of steps. +

+

+ Preliminary answer: on a sample of 25 notes, filtering by two tags took about 40 seconds and + required scrolling through the feed; in Columns, two clicks, about 5 seconds. These are rough estimates— + replace them with actual measurements. +

+
+ +

Test: Long-term usability in daily work

+

+ The second criterion is more subjective, but for a tool tailored to my needs, it’s more important: will I still be + using the plugin a month from now? I am—it’s become an integral part of my work with the database and doesn’t require + me to remember how to use it. +

+ +
+ Question for the author +

+ Are there any external indicators: installs, GitHub stars, reviews, or questions in the issue tracker? Any + number confirming that you’re not the only one using the plugin. +

+

+ Preliminary answer: The plugin currently needs to be installed manually; it hasn’t been approved for the community repository yet, so + there are only a handful of installs and no stars so far. If there’s actual data, include it here— + it’s more convincing than any self-report. +

+
+

+ What I’d do differently. I deliberately chose not to implement drag-and-drop of cards between columns, + since that changes a property in the note, and for a view plugin, that poses a separate data integrity risk. + But I see a demand for this among users, and I might add it as an optional mode. For + now, since the plugin is maintained manually (it hasn’t been reviewed by the community directory yet), this is the only thing + preventing users from using it right away. +

+ +
+
+
+ + {{> mini-projects-related}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/design-system.en.html b/src/pages/cases/design-system.en.html new file mode 100644 index 0000000..1c94f4d --- /dev/null +++ b/src/pages/cases/design-system.en.html @@ -0,0 +1,891 @@ + + + + + + + Design System — Portfolio + {{> head-links}} + + + + + {{> header-minimal}} +{{> fab-stack-home-contact}} +
+
+

Documentation · UI

+

Design System

+

Tokens, typography, grid, components, and longgrid blocks

+

+ Switch between themes, accents, and fonts using the floating panel on the right. When making global style changes (tokens, + components, longgrid blocks), be sure to update this page as well—it’s the project’s live UI catalog. +

+ + + +

Colors

+

+ The accent and “cool/warm” tones of the entire UI are defined by three numbers in the HSL model (Hue, + Saturation, Lightness) at <html>. From these, + --accent and derived tokens; neutral backgrounds are slightly tinted with the same hue + (--neutral-accent-tint). Light/dark theme — data-theme, mesh — + data-mesh-bg. Can be changed via the FAB on the right. +

+

What is --theme-h, --theme-s, --theme-l

+
    +
  • + --theme-h — hue (Hue), position on the color wheel 0–360°. A hue shift + recolors buttons, links, the mesh gradient, and square accents (--accent-square-2 … + 4), without having to manually adjust each hex value. +
  • +
  • + --theme-s — Saturation: how “pure” the color is, rather than gray. +
  • +
  • + --theme-l — Accent lightness: darker or lighter than the primary brand color + (usually limited by the panel’s range to ensure buttons remain readable). +
  • +
+

+ In CSS, it looks like this: + --accent: hsl(var(--theme-h) calc(var(--theme-s) * 1%) calc(var(--theme-l) * 1%)). + Values are written in localStorage (siteThemeV1) and are inserted by an inline script into + headto prevent a “foreign” color from flashing during loading. +

+
+
+
+ --bg +
+
+
+ --bg-elevated +
+
+
+ --surface +
+
+
+ --text +
+
+
+ --text-muted +
+
+
+ --line +
+
+
+ --accent +
+
+
+ --accent-text +
+
+
+ --accent-soft +
+
+

+ Additionally: quadratic mesh shades — --accent-square-2 … 4; they depend on hue. +

+ +

Fonts

+

+ A pair of fonts — data-font on <html> (FAB “Typography”): sets + --font-accent (headings) and --font (body text). Scale in tables: class, example, purpose. +

+

Font families

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
data-fontStackWhere
merriweatherMerriweather + AliceDefault pair; Alice—body text, Merriweather—emphasized headings
monoSource Code Pro + PT MonoMonospace pair
geologicaGeologica + PT SansSans-serif + neutral body text
+
+ +

Typographic scale

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassExamplePurpose
.hero__eyebrow

Section caption

Hero, case input
.hero__title +

+ Display main heading +

+
H1 for the main page; reduced on DS for the column
.section__title

Section

“Skills,” “Portfolio,” contacts; main font, no caps
.case-page__h1

Page title

H1 for case studies / Design System
.case-page__sub

Lead text under the heading

Subheading below H1
.section__prose

Main paragraph text.

Prose, lists, and links in the article
h2 in .case-article

H2 subsection

Long-form sections (such as “Colors”)
h3 in .case-article

H3 subsection

Subsections within H2; margins in main.css: 3.25rem top, 1.5rem bottom, after figure 4rem, h3+h3 3.5rem
+
+ +

Rhythm and Code

+

Rhythm example:

+
    +
  • bulleted list;
  • +
  • emphasis and link;
  • +
+
    +
  1. numbered item;
  2. +
+

Inline code and block:

+
--font: "Alice", system-ui, serif;
+--font-accent: "Merriweather", var(--font);
+

+ Headings use clamp() — scale relative to the viewport; see the “Grid” section for more details. +

+ +

Grid and Responsive

+

+ There is no separate 12-column grid: a full-bleed layout with side margins + --space and local CSS Grid within sections. The content column for DS and case studies — + .case-article (max-width 48rem). +

+ +

Basic framework

+
    +
  • --space: clamp(1rem, 4vw, 2.75rem) — horizontal margins + safe-area-inset.
  • +
  • --max: none — no fixed 1200px “box”; width = viewport minus padding.
  • +
  • .section — vertical spacing via clamp(); .section__inner centers the block.
  • +
  • .section--tight — More compact vertically (case studies, this page).
  • +
+ +

Breakpoints

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FromWhat Changes
860px.hero__grid → 2 columns 1.15fr 0.85fr
760px / 1180px.projects-carousel: --projects-visible 1 → 2 → 3 cards
720px.skills-category__grid → 2 columns
1024pxSkills: 6-column mosaic (grid-column: span …)
560px / 1024px.contact-grid → 2 → 4 columns
48rem / 28remCase gallery: ≤2 col → 1 col
640pxcase-media-gallery--wide collapses to the width of a column
+
+ +

Hero: one → two columns

+

Layout .hero__grid (compressed to 860px):

+ + +

Contacts: 1 → 2 → 4

+

Demo .contact-grid (placeholders, no transitions):

+ +

+ Skills: mosaic layout on wide screens—see + the homepage, #skills. Portfolio: carousel on + 100vw with --projects-card-width and JS scrolling — on the homepage + #projects. +

+ +

Wide in case studies

+

+ .case-media--wide, .case-media-gallery--wide and .case-callout wider + article columns: min(100vw − 2×padding, content + 8rem), with margins --space. On a narrow screen (up to 640px), "wide" collapses to the width of the column. Images with data-image-viewer — the outline and hover effects + are the same as .case-video-shell (live examples — case study element demo). The caption below the video is + figcaption centered in the column. +

+ +

Typography and Motion

+

+ Fluid type: clamp() on .hero__title, .section__title, + .case-page__h1. Rounded corners (data-radius) do not change the grid. For long screenshots and + animations, the prefers-reduced-motion: reduce. +

+ +

Components

+

Live examples; the shell (header, FAB, footer, cookie) is already integrated on this page.

+ +

Buttons

+ +

.btn .btn--primary | secondary | ghost · .btn--flat | raised · .btn__icon

+ +

FAB buttons

+

+ Floating buttons in the lower-right corner (.fab-stack). Icon-only and with a text label. +

+
+ + + +
+

.fab .fab--primary | secondary · .fab--label (with text) · .fab-primary__ico · .fab__label

+ +

Tags

+
    +
  • hero__tag
  • +
  • UX/UI
  • +
+

.hero__tags / .hero__tag

+
    +
  • portfolio-card__tag
  • +
  • Web App
  • +
+

.portfolio-card__tags / .portfolio-card__tag

+ +

Portfolio Card

+ +

.portfolio-card and child BEM classes

+ +

Placeholder while images are loading

+

+ While img hasn't loaded yet, initImageLoadPlaceholder it + .is-img-loading on the image and .has-img-loading the wrapper. The background layer is + ::before, a single glow from left to right— ::after (img-ph-shine-sweep). + Icons, SVGs, and small images up to 40px are skipped; + disable selectively: data-no-img-placeholder. Below is a fixed demo (on the website, the classes are removed + after load). +

+ +

.has-img-loading · .is-img-loading · .img-ph-demo (placeholder demo)

+ +

TUI Braille spinner

+

+ Loading large images in the viewer (.case-image-viewer) is indicated by a monospaced Braille spinner—just like in TUI. Pure CSS, no JS: 10 frames cycle through an animation. Reusable class: steps()an animation. Reusable class .tui-spinner + (color — --accent, font—system mono). +

+
+ ⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏ + ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ +
+

.tui-spinner · frames: ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ · prefers-reduced-motion displays ⠋

+ +

Skill card

+
+

skill-task-card__task — the task description provided by the business.

+
+

skill-task-card__solution — the first approach to the solution.

+

The second item in the solutions section.

+
+
+

.skill-task-card__task · __solutions · __solution

+ +

Callout

+

+ Longread accent block: wider than the column (like wide media), text .case-callout__content slightly + larger than the main paragraph. +

+ +

.case-callout · .case-callout__emoji · .case-callout__emoji--pulse · .case-callout__content

+ +

Contact Cards

+

+ On the home page, there are four cards in a grid (1→2→4 columns). Here are two examples—the grid is forced into two columns. +

+ +

.contact-card--link · --action · --brand-*

+ +

Section with a background

+

+ On the homepage, the strip .section--surface is visually presented using mesh; in other cases, the page background is + solid—see the compact demo below with background: var(--surface). +

+
+
+

section__title

+

Snippet: .section.section--surface + .section__inner

+
+
+

.section · .section--surface · .section--tight · .section__inner

+ +

Separators

+

+ Horizontal separators: a line or simply white space (indentation). Modifiers --line, --air, --air-lg. +

+
+
+
+
+
+

.sep · .sep--line · .sep--air · .sep--air-lg

+ +

Blocks

+
+

+ Longgrid case layout: media and galleries, link cards, videos, callouts, wide blocks, and other partials. + A live example with all variations is available on a separate page; use it to copy sections when building a new case. +

+

+ Case element demo +

+
+ +

Activity

+
+

+ On the homepage in the section #mini-projects card mp-card section on the homepage in a masonry grid. Types, cells, and the live + layout are on a separate page. +

+

+ Activity Card Catalog +

+
+
+
+ + {{> footer}} + {{> cookie-notice}} + {{> nav-more-floating}} + + + diff --git a/src/pages/cases/lunacy.en.html b/src/pages/cases/lunacy.en.html new file mode 100644 index 0000000..cd320c9 --- /dev/null +++ b/src/pages/cases/lunacy.en.html @@ -0,0 +1,382 @@ + + + + + + + Lunacy — Case Study + {{> head-links}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Icons8 · desktop

+

Lunacy Graphic Editor

+

+ Work on the Lunacy interface as part of the Icons8 team: user flow, prototypes of complex scenarios, refinement of functionality and + visual logic. Below are screenshots from the process (the order of the screenshots is based on the filenames). +

+

+ Product: icons8.com/lunacy +

+ +

Overview

+

General view of the application—the workspace with an open document, toolbars, and the canvas. This screen demonstrates Lunacy’s basic layout: the left panel shows layers, the right panel shows object properties, and the top bar displays the context bar with the current tool. This serves as the starting point for the rest of the materials on the page.

+
+ Lunacy App Review +
Overview of the Lunacy window.
+
+

Next are individual scenarios and interface iterations, presented in the order that makes the most sense in terms of context and file names.

+ +

Blob: Settings on the Canvas

+

Working with a blob in the context of the canvas is a separate scenario, prior to the analysis of the panel across versions.

+
+ Blob Settings on Canvas +
blob_settings_on_canvas
+
+

The settings panel for these tasks evolved through a series of mockups from v1 to v9—they’re compiled in the grid below.

+ +

Components and Comparison

+

Comparison of components and the update indicator in the panel.

+
+ Component Comparison Dialog Box +
compare_components_modal_window
+
+
+ Component Update Indicator in the Panel +
components_update_indicator_location_panel
+
+

Two related screens: searching for discrepancies and displaying update status next to the panel navigation.

+ +

Prototype in the Panel

+

Creating a prototype on the canvas and panel states for prototype mode.

+
+ Modal Window: Create a Prototype on Canvas +
modal_window_for_prototype_create_on_canvas
+
+
+ Modal Window: Prototype Panel States +
modal_window_for_prototype_panel_states
+
+

Both screenshots show how the prototype is linked to the canvas and to a set of dashboard states.

+ +

Shadow Pro: Settings

+

Shadow Pro block: panel, ideas, modals with auto-open and auto-close.

+
+ Shadow Pro: Settings Panel +
shadow_pro_settings_panel
+
+
+ Shadow Pro: Ideas +
shadow_pro_settings_ideas
+
+
+ Shadow Pro: Mods, Auto Enabled +
shadow_pro_settings_modal_auto_on
+
+
+ Shadow Pro: Mod Mode, Auto Off +
shadow_pro_settings_modal_auto-off
+
+

Four consecutive frames show the development of a single subproject: from the panel and sketches to refining the behavior in modals.

+ +

Blob settings panel: versions v1–v9

+

+ Panel iterations by filename blob_settings_panel_v1 … v9. Grid based on text width, three columns on a + wide screen; as the window narrows, the number of columns decreases automatically. +

+ +

The grid is convenient for step-by-step comparisons; for details, clicking on a cell opens a full-screen view.

+ +

Slider: versions v1–v18 and frame 14

+

+ Ordered by name: slider_v1 … slider_v13, then slider_14 (in the asset without a suffix v), + then slider_v15 … slider_v18. +

+ +

This sequence is useful for analyzing the evolution of the control: from early layouts to final states.

+ +

Sliders: general frame

+

A summary screen for sliders—following the version series.

+
+ All Sliders: Overview +
sliders_all_set
+
+

This concludes the section on sliders: context—how multiple controls coexist on a single screen.

+
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/manu-game-maker.en.html b/src/pages/cases/manu-game-maker.en.html new file mode 100644 index 0000000..40936ba --- /dev/null +++ b/src/pages/cases/manu-game-maker.en.html @@ -0,0 +1,124 @@ + + + + + + + MANU Game Engine — Case Study + {{> head-links}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Product Design · Desktop App

+

MANU Game Engine

+

+ Interface redesign and development: a new operational concept, an updated visual system, and hundreds of carefully crafted user scenarios. +

+

+ The work focused on the desktop editor and associated panels: the goal was to maintain the integrity of the visual language while expanding functionality and ensuring that the usage scenarios of power users were preserved. +

+

+ A detailed case study will be posted on this page later; below is the cover image for portfolio navigation. +

+

Cover

+
+ MANU Game Engine Interface — Case Cover +
Current preview for the portfolio card
+
+
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/mini-projects-showcase.en.html b/src/pages/cases/mini-projects-showcase.en.html new file mode 100644 index 0000000..b0c7989 --- /dev/null +++ b/src/pages/cases/mini-projects-showcase.en.html @@ -0,0 +1,643 @@ + + + + + + + Activity — Card Catalog + {{> head-links}} + + + + + {{> header-minimal}} + {{> fab-stack-home-contact}} +
+
+
+
+

Design System · Activity

+

Activity Cards

+

All card types and a live grid for selecting layouts on the homepage

+

+ Layout and content page: the same classes and scripts are used here as in the section on the homepage. Change the font and theme in the panel on the right; + narrow the window, and the grid will recalculate. The text in the card headers is just placeholder text; you can remove it when previewing. +

+ + + +

How to Use

+

+ First, select a type (stack, horizontal, compact, decor), then data-mp-cells (1–4) and + the order li in the list. Cards with data-mp-extra do not affect the height of the list until the “Show All” button is clicked. + For more details, see docs/mini-projects-cards.md. +

+ +

Card Types

+

+ On the left is an example of a text card; on the right is the type name and an explanation of the classes. +

+ {{> mini-projects-showcase-specimens}} + +

Width in Cells

+

+ Attribute data-mp-cells sets li.mini-projects-grid__item specifies the desired width from 1 to 4 cells. + The script will not allow the card to be wider than the current row. +

+

+ For responsive width, use data-mp-cells-sm (for 4 cells per row, ≥ 880 px) and + data-mp-cells-xs (for 2 cells, ≥ 520 px). The script selects the value based on the current number of cells in a row. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
TheWhen to useExample
data-mp-cellsWide screen (6 cells, ≥ 1180 px)data-mp-cells="3"
data-mp-cells-smMedium screen (4 cells, ≥ 880 px)data-mp-cells-sm="2"
data-mp-cells-xsNarrow screen (2 cells, ≥ 520 px)data-mp-cells-xs="1"
+
+

+ Example: data-mp-cells="3" data-mp-cells-sm="2" — A card takes up 3 cells on a wide screen, 2 on a medium screen, and 1 on a narrow screen. +

+
+
+ +

≥ 1180 px — 6 cells

+
+
3
+
3
+
2
+
2
+
2
+
1
+
2
+
3
+
4
+
2
+
+
+
+ +

≥ 880 px — 4 cells

+
+
3
+
1
+
2
+
2
+
1
+
2
+
2
+
4
+
+
+
+ +

≥ 520 px — 2 cells

+
+
1
+
1
+
2
+
2
+
1
+
1
+
+
+
+ The number in the block = the value data-mp-cells. The card occupies that many cells in a row. On a narrow screen, there are fewer cells—cards with a width greater than the number of cells are carried over to the next row. As data-mp-cells-sm / data-mp-cells-xs the card changes its width when the view is narrowed. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
List widthCells per row
≥ 1180px6
≥ 880px4
≥ 520px2
already1 (entire row)
+

+ A pair on six cells 3 + 3 or a trio 2 + 2 + 2 usually looks neater than a random set. + Decor (mp-card--decor) fills in the gaps in the grid. +

+
+
+
+ +
+
+

Live masonry grid

+

+ A demo of the “Activity” block from the homepage: here, all card types are in a single live grid. Each card’s caption shows the type of + layout and data-mp-cells. Change the window width and font in the theme panel, watch how the grid + rearranges itself, and apply the best layout to the homepage. +

+ {{> mini-projects-showcase-grid}} +
+
+ +
+ +
+
+ + {{> footer}} + {{> cookie-notice}} + {{> nav-more-floating}} + + diff --git a/src/pages/cases/mobile-clinic-app.en.html b/src/pages/cases/mobile-clinic-app.en.html new file mode 100644 index 0000000..234406a --- /dev/null +++ b/src/pages/cases/mobile-clinic-app.en.html @@ -0,0 +1,124 @@ + + + + + + + Mobile App for a Network of Clinics — Case Study + {{> head-links}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

UX/UI · Mobile App

+

Mobile App for a Clinic Network

+

+ Booking doctor appointments and managing medical services: a simple user journey, intuitive navigation, and quick access to actions. +

+

+ The project’s focus is on alleviating patient anxiety and eliminating unnecessary steps: clear appointment statuses, predictable forms, and reliance on familiar mobile app patterns. +

+

+ A full breakdown of the case study will be published here; for now, this page serves as an entry point from the portfolio section on the homepage. +

+

Cover

+
+ Mobile App for a Network of Clinics — Case Study Cover +
Current preview for the portfolio card
+
+
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/obsidian-plugin-columns-view.en.html b/src/pages/cases/obsidian-plugin-columns-view.en.html new file mode 100644 index 0000000..3503ac1 --- /dev/null +++ b/src/pages/cases/obsidian-plugin-columns-view.en.html @@ -0,0 +1,150 @@ + + + + + + + Column View for Obsidian — Case Study + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Obsidian · Plugin

+

Column View — a plugin for Obsidian

+

Design and development of an interface for multi-column note management

+ +

+ +

+ +

Context

+

+ +

+ +

Task

+

+ +

+ +

Solution

+

+ +

+ +

Usage Filter

+
+
+ +
+
Filtering notes in a columnar view.
+
+ +

Display Configuration

+
+
+ +
+
Column and display settings.
+
+ +

Result

+

+ +

+
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + diff --git a/src/pages/cases/orc-automation-panel.en.html b/src/pages/cases/orc-automation-panel.en.html new file mode 100644 index 0000000..1ad5fde --- /dev/null +++ b/src/pages/cases/orc-automation-panel.en.html @@ -0,0 +1,262 @@ + + + + + + + Web Dashboard for Automation Orchestration — Case Study + {{> head-links}} + + + + + {{> header-case}} + {{> fab-stack}} +
+
+

Primo RPA · UX/UI · Web App

+

Web Dashboard for Automation Orchestration

+

+ Primo RPA Orchestrator: launching robots, managing projects, and monitoring processes in a web dashboard for administrators and automation developers. +

+ +
+

Context

+

+ In the Primo RPA stack, the orchestrator manages the scheduling, queue, and statuses of RPA robots on the client’s infrastructure. It can be accessed not only from the development studio but also from a browser: users view projects, restart tasks, and troubleshoot failures. +

+

+ By that point, the product was already in use, but the interface was noticeably outdated: users faced navigation issues, visual clutter in tables, and confusing workflows in some sections. The goal was to refresh the interface’s look, modernize it, and fix the accumulated UX issues. +

+
+ +
+

Role and Approach

+

+ My role in this project was more of a curatorial one—I didn’t do the design myself, but rather structured the process so that the design and development teams could work in sync. +

+ +

+ At the same time, I was looking for a designer who could take on the main visual design work. Elizaveta was selected—out of more than 150 applications, she was the best fit for the upcoming workload. +

+

+ Over the course of three months, I brought the new team member up to speed on the project details: I assigned tasks, provided feedback on the mockups she created, and shared context on user scenarios. Together with the development team, we planned the order in which to update the service’s design—we revised screens based on priority, incorporating changes into ongoing releases, without “stopping everything and redesigning from scratch.” +

+
+ +
+

Technical Stack and Tools

+

+ The latest version of Ant Design was chosen as the UI framework. It was already in use on the project, and its latest release introduced the Theme Editor—a feature that allowed us to customize the appearance of components using design tokens without manually overriding styles. This provided both designers and developers with a unified language for describing the user interface. +

+

+ Storybook served as the single source of truth and the bridge between design and development. In Storybook, components weren’t just documented—they actually worked in an isolated environment. This allowed designers to see the elements in action and developers to integrate components into the dashboard more quickly. +

+
+ +
+

Design System and Synchronization

+

+ To streamline our workflow, we synchronized tokens from Ant Design with those in Figma—colors, padding, typography, and corner radii were standardized to consistent values. Here’s how it worked: if tokens were updated in Figma, they could be exported as JSON and immediately imported into the code without any issues—instead of having a developer manually search for changes and update each token individually. This approach also allowed us to view the design more systematically. +

+ +

+ Components in Figma were built from scratch—based on Ant Design references, but without using pre-made libraries. The decision to avoid pre-made solutions was a conscious one: we needed full customization to fit our workflow and the ability to use new Figma features that weren’t supported in libraries from the Figma community. +

+

+ For Storybook, we selected and configured plugins that were relevant to our tasks—accessibility checks, viewing component states, and switching themes and locales. This turned Storybook into more than just a showcase for components; it became a full-fledged design review tool. +

+
+ +
+

Designer’s Work Environment

+

+ We set up the environment so that designers could see the live implementation of components on their own computers using a local Storybook instance and Git. This allowed for more precise control over how the intended design was translated into code and enabled us to quickly spot discrepancies early on. +

+

+ We also discussed a step to accelerate Storybook support by allowing designers to write the JSX for implemented components themselves—this shortened the path from mockup to a documented component in Storybook. +

+

+ We fine-tuned the workflow for adding icons to the library. The key feature was that icons could be displayed in Storybook with filtering and sorting capabilities. At the same time, designers could update icons without involving a developer—they simply pushed new files to the repository. +

+

+ Being able to see the updated icon immediately in the browser allowed us to optimize it better and eliminate display glitches when using Boolean operations. +

+

+ We also developed an approach and set of rules for Figma that not only guided the designer but also ensured the creation of consistent and functional icons. +

+
+ +
+

UX Improvements

+

+ During the interface update, Elizaveta also proposed a number of user experience improvements. Some of them were successfully implemented—for example, clearer grouping of elements in complex forms and redesigned loading states. However, the priority was not to disrupt the existing UX that users had grown accustomed to, so many ideas were saved for the backlog for the next iteration. +

+
+ +
+

Project List

+

+ The project table is one of the most frequently viewed screens. In the old version, there were many columns, a dense grid, and small text: the project status and name were difficult to read, especially on a laptop. +

+

In the new version:

+
    +
  • the columns have been reduced to what’s necessary for daily work;
  • +
  • statuses and actions have been moved to predictable areas within each row;
  • +
  • indentation and typography have been aligned with the rest of the panel using Ant Design.
  • +
+ +

It used to be

+
+ List of projects in the orchestrator — previous version of the table +
+ +

Now

+
+ List of Projects in the Orchestrator — Updated Table +
+
+ +
+

Results and Reflection

+

+ The projects screen became easier to scan: less visual noise, and it’s faster to find the right project and its status. After rolling out the new design to several clients, we received positive feedback and many ideas for further improvements. +

+

+ I stepped away from the project once Elizaveta felt confident in her role and was able to handle design tasks independently. I occasionally answered specific questions, but overall, the handoff went smoothly. +

+

+ A little over a year later, the team’s processes have changed significantly. According to the team, tools powered by neural networks—such as Claude Design—are now actively involved in the creation and handoff of designs. What we used to build manually using tokens, Storybook, and environment synchronization is now, to some extent, automated. +

+

+ I believe the work was completed fairly quickly and to a high standard—amid constant changes in the market and within the company, we managed not only to update the interface but also to establish a sustainable process that continued to function even without my involvement. +

+
+
+
+ + {{> projects-related}}{{> projects-section}} + {{> contact-section}} + {{> footer}} + {{> cookie-notice}} + {{> nav-more-floating}} + + + diff --git a/src/pages/cases/site-with-ai-ide.en.html b/src/pages/cases/site-with-ai-ide.en.html new file mode 100644 index 0000000..2bfa906 --- /dev/null +++ b/src/pages/cases/site-with-ai-ide.en.html @@ -0,0 +1,133 @@ + + + + + + + This Website — Developed with AI IDE — Case Study + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Development · AI IDE

+

This website

+

Website Development Using AI IDE

+ +

+ +

+ +

Context

+

+ +

+ +

Task

+

+ +

+ +

Solution

+

+ +

+ +

Result

+

+ +

+
+
+ + {{> mini-projects-related}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/task-distribution-concept.en.html b/src/pages/cases/task-distribution-concept.en.html new file mode 100644 index 0000000..04c863a --- /dev/null +++ b/src/pages/cases/task-distribution-concept.en.html @@ -0,0 +1,124 @@ + + + + + + + Task Distribution Service Concept — Case Study + {{> head-links}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

UX/UI · Analytics

+

Task Assignment Service Concept

+

+ Product concept: setting, assigning, and tracking tasks with an emphasis on process transparency and seamless teamwork. +

+

+ The goal of the concept is to show how the team views the workflow without “black boxes”: who is working on what, where the bottlenecks are, and which statuses are critical for the next step. +

+

+ A detailed case study will be posted here later; the page is already linked to a portfolio entry on the website. +

+

Cover

+
+ Task Distribution Service Concept — Case Cover +
Current preview for the portfolio card
+
+
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + diff --git a/src/pages/cases/task-tracker.en.html b/src/pages/cases/task-tracker.en.html new file mode 100644 index 0000000..da01a18 --- /dev/null +++ b/src/pages/cases/task-tracker.en.html @@ -0,0 +1,594 @@ + + + + + + + Task Tracker for a Back-Office System — Case Study + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-case}} +{{> fab-stack}} +
+
+

Test Assignment · Back Office

+

Task Tracker for an Internal Back-Office System

+

Assignment

+

+ Implement an interface for planning and assigning tasks to employees in the operations department who work in a back-office system. There are a large number of diverse tasks that can be grouped into the following categories: Type-1, Type-2, Type-3, Type-4, Type-5, Type-6, Type-7. Each task has its own automatically assigned priority. Users have access only to tasks from specific categories. +

+

The following needs to be implemented:

+
    +
  • + Main screen: +
      +
    • where the user can view all open general tasks and select some for themselves.
    • +
    • A personal to-do list displaying both manually selected tasks and automatically assigned ones.
    • +
    • For a selected task, there is the option to assign it to another employee or return it to the general list.
    • +
    +
  • +
  • A screen where users can see what tasks each person is working on.
  • +
+ +

Introduction

+

+ Since I personally have extensive experience working with task trackers, I’m drawing on my own experience and that of my colleagues, while taking the project requirements into account. +

+ +

References

+
+ References +
+
    +
  • Task trackers (Trello, Monday, YouTrack, etc.)
  • +
  • Services for visual database management (Notion, Airtable, etc.)
  • +
+ +

Solution

+ +

Screencast

+
+
+ +
+
+ + + +

Tabs

+

On the All Tasks tab, the employee can view all available tasks.

+
+ Untitled +
+

+ The "My tasks" tab displays only those tasks assigned to the current employee. Tasks are grouped by status (the status is hidden in the task card). +

+
+ Untitled +
+

The “Task by Assignee” tab displays all tasks broken down by assignee.

+
+ Untitled +
+

Options for the current tab are located on the right-hand side.

+
+ Untitled +
+

+ All changes are saved when you leave the tab and when you close the entire Tasks page. These settings are individual, and each employee can customize the page as they see fit. +

+
    +
  • Group—allows you to create additional groupings based on task properties (category, priority, assignee, status, creation date, modification date).
  • +
  • View—allows you to change the display of current tasks to a different view: board, list, or table.
  • +
  • Filter—allows you to hide tasks based on their properties.
  • +
  • + Sort—allows you to determine the order in which tasks are displayed based on their properties. If sorting by status (High, Medium, Low) is enabled, you can choose either alphabetical order or reverse order, or you can create your own order. Dates and numbers are sorted in ascending or descending order. +
  • +
  • + Search on page — allows you to display only those tasks whose title or description contains a specific search word or phrase. (Search functionality can be improved by adding search operators if research demonstrates the need.) +
  • +
+

+ The page uses lazy loading for tasks. As you scroll down, new tasks will load. The number of tasks is displayed in the headers; this can be helpful for estimating how far you need to scroll to see everything. There may be a large number of tasks, in which case it might make sense to add pagination as well. +

+ +

Display Options (Views)

+

+ Different views of the same tasks can be useful for various contexts in which the Tasks page is used, as well as to accommodate employees’ personal preferences, which increases their efficiency. An employee who isn’t annoyed by the interface works more productively and contributes more. +

+
+ Untitled +
+ +

+ The Board view makes it easier to use the drag-and-drop feature (see below). It’s also visually easier to determine the number of tasks in a category, which I imagine could be helpful. When tasks are grouped by completion status, moving cards from left to right creates a natural horizontal flow of tasks from point A to point B. +

+
+ Untitled +
+

+ The List view allows you to see more information in a smaller screen area. At the same time, this view is visually and functionally simpler than the table view, which means less cognitive load on the user. Also, all task titles start at the far left, making it easy to scan the list. +

+
+ Untitled +
+

+ The Table view allows you to work with all task fields immediately, without having to open the task in a modal window or a separate page. The table allows you to customize the width and order of columns, which can be convenient in certain use cases. +

+
+ Untitled +
+ +
+
+ +
+
+ + +

Drag & Drop

+

+ In all views, you can drag and drop elements (cards, list items, and table rows and columns). This promotes more productive work and feels natural to the user. For example, if you need to distribute tasks among employees (for an admin or manager), change the status of multiple tasks at once, or do so within a short period of time. +

+

Board view

+
+
+ +
+
+ +

List view

+
+
+ +
+
+ +

Advanced interactive prototype in ProtoPie

+

+ A schematic representation of how Drag & Drop works. This type of prototype helps designers better understand the nuances that need to be considered in the user flow, as well as when preparing specifications for developers. Also, by testing this prototype, you may realize that the feature needs to work completely differently and decide to redesign it right away. This saves overall development time. +

+
+
+ +
+
+ +

+ In the prototype, only the blue card can be moved, and not all positions work correctly. You can view the recording, which is available on the same prototype page. +

+ +

Style

+

+ The visual style can be anything you like without changing the framework itself. For example, it could be a bit more colorful with more expressive fonts. +

+

Light-colored theme

+
+ Light-colored theme +
+ +

Neutral dark theme

+
+ Neutral Dark Theme +
+ + +

Research

+

+ During the Figma prototyping phase, you can conduct interviews with several employees—for example, 5 people. First, add real tasks from the current system to the prototype; about 20 should be enough. Next, you can hold a video call with the respondent’s screen shared or meet in person to present a few tasks and ask some questions. During the session, the respondent can interact with the prototype, but if something doesn’t work, the interviewer can note the attempt and explain that this feature isn’t working yet, as well as ask what the respondent expects to see next. +

+

Tasks

+
    +
  1. Find your current tasks on the Tasks page under the All Tasks tab
  2. +
  3. Assign tasks to yourself to work on
  4. +
  5. Find a task related to a specific topic (the interviewer provides an example) that they have already completed
  6. +
  7. Show tasks that belong only to a specific category and must be completed by the end of the week
  8. +
  9. Request that the priority of several tasks be changed at once
  10. +
  11. Rate the visual appeal of the interface on a scale of 1 to 10
  12. +
  13. Rate your overall impression of the proposed concept on a scale of 1 to 10
  14. +
  15. Suggest additional features that would be useful
  16. +
+

Analytics

+

To assess the relevance of the implemented features, the following metrics must be collected.

+
    +
  • + Number of page views for the "Tasks" page page_views_tasks with the option to break them down +
      +
    • + by tabs +
        +
      • All tasks all_tasks_tab
      • +
      • My tasks my_tasks_tab
      • +
      • Tasks by Assignment tasks_by_assign
      • +
      +
    • +
    • + by role +
        +
      • Admin admin
      • +
      • Manager manager
      • +
      • User user
      • +
      +
    • +
    • + by search attempts +
        +
      • Search Used search used
      • +
      +
    • +
    +
  • +
  • + Number of enabled custom settings custom_settings with the option to group +
      +
    • + by tabs +
        +
      • All tasks all_tasks_tab
      • +
      • My tasks my_tasks_tab
      • +
      • Tasks by Assignment tasks_by_assign
      • +
      +
    • +
    • + by role +
        +
      • Admin admin
      • +
      • Manager manager
      • +
      • User user
      • +
      +
    • +
    • + by type +
        +
      • Group group
      • +
      • Filter filter
      • +
      • Sort sort
      • +
      +
    • +
    +
  • +
  • + Number of included species View Used view_used with the option to break down +
      +
    • + by tabs +
        +
      • All tasks all_tasks_tab
      • +
      • My tasks my_tasks_tab
      • +
      • Tasks by Assignment tasks_by_assign
      • +
      +
    • +
    • + by role +
        +
      • Admin admin
      • +
      • Manager manager
      • +
      • User user
      • +
      +
    • +
    +
  • +
+

+ Then, over the next six months (or sooner, depending on user activity), we’ll be able to see the results and conduct a study (in the form of interviews) on the features that are used least frequently and those that have received complaints, in order to gather high-quality data and get a complete picture of what’s happening. +

+ +

Additional details

+

+ When creating mockups in Figma, the following were used: auto-layout features; interactive components; plugins (Iconify, Fitter, Protofly, Shadow Maker, Dark Side, etc.); and the Community file (+40 Types of Cursor). About 60% of the layers are named and organized for easier workflow. An 8pt grid is used, with additional sizes of 2pt and 4pt. Color styles are available for light and dark themes. The design adapts to changing window sizes (no mobile version). +

+ +
+
+ + {{> projects-related}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + + + + diff --git a/src/pages/cases/template-elements-demo.en.html b/src/pages/cases/template-elements-demo.en.html new file mode 100644 index 0000000..3c664ac --- /dev/null +++ b/src/pages/cases/template-elements-demo.en.html @@ -0,0 +1,511 @@ + + + + + + + Case Study Elements Demo — template + {{> head-links}} + {{> head-plyr}} + + + + + {{> header-minimal}} +{{> fab-stack-home-contact}} +
+
+

Demo · template

+

Case Study Example: Demo Elements

+

Text blocks and elements for quickly building a longread

+

The media for the demo is located in public/assets/ (the page builder does not copy them). See public/assets/README.md.

+ +

Context

+

+ This section shows an example of a text block for the introduction. Here, you can briefly describe the product, the audience, and the project’s limitations. + The text is neutral: the goal is to quickly sketch out the structure and check the page’s visual rhythm. +

+ +

Task

+

+ We need to put together a demo longread with the main UI elements: link cards, media blocks, and examples of content layout. + It’s also important to check how the blocks behave on narrow and wide screens. +

+ +

Solution

+

Below are some ready-made examples that you can copy into real-world projects.

+ +

Link Cards

+ + +

Image: 50% of the original size (no preview)

+
+ Full-size demo GIF +
Image at reduced actual size, centered.
+
+ +

Image: width of the content (with preview)

+
+ Demo images based on content width +
Image matches the width of the content. Clicking opens the viewer.
+
+ +

Image: slightly wider than the content (with preview)

+
+ The demo image is wider than the content +
The image extends slightly beyond the content column.
+
+ +

Long screenshot: collapsed height and button inside the preview

+

+ Block data-case-tall-media: width is specified by the data-case-tall-width="wide" (like a “wide” image) or content (per column). When collapsed, the top part of the frame is visible; at the bottom of the preview, there’s a solid “fog.” An “Expand” / “Collapse” button with a chevron icon appears above the bottom of the frame, inside the border; when expanded, the fog disappears; when collapsed, the page scrolls back to the preview. The preview height is set .case-media-tall__clip via --case-tall-max (default min(70vh, 32rem)). +

+
+
+
+ Demo: Long vertical screenshot of the interface + +
+
+ +
+
+
Long image img-long.webp (source PNG next to it in public/assets/template-elements-demo/).
+
+ +

Gallery: grid based on content width

+

+ The number of columns on a wide screen is set via figure: the style="--case-gallery-cols: 3". Below these thresholds, the grid collapses to two or one column. Clicking on a thumbnail opens the general case viewer. +

+ + +

Gallery: Full-page grid with side margins

+

+ The case-media-gallery--wide — same logic for extending beyond a column as in the single-column case-media--wide. Here, there are four columns on a wide screen (--case-gallery-cols: 4). +

+ + +

Slider: one image, arrows, and dots

+

+ Block .case-media-slider displays slides one at a time: navigation using “prev/next” arrows, + paging using dots (the active one is highlighted in accent color). Keyboard support (←/→, Home/End on dots), + touch/mouse swipe, and lazy loading of adjacent frames via data-src. Clicking on the active + slide opens the general case viewer. +

+
+
+
+
+ Slider, Frame 1 +
+
+ Slider, Frame 2 +
+
+ Slider, Frame 3 +
+
+ Slider, Frame 4 +
+
+
+ + +
+
+
+ + + + +
+
+ +

+ The same slider, but with the modifier case-media--wide — extends beyond the content column, + like single wide images. The previous/next buttons and dots behave the same way. +

+
+
+
+
+ Wide slider, frame 1 +
+
+ Wide slider, frame 2 +
+
+ Wide slider, frame 3 +
+
+ Wide slider, frame 4 +
+
+ Wide Slider, Frame 5 +
+
+ Wide slider, frame 6 +
+
+ Wide slider, frame 7 +
+
+
+ + +
+
+
+ + + + + + + +
+
+ +

+ Slider with horizontal (wide) frames of the same size—all images + 1024×800. +

+
+
+
+
+ Wide Slider, Frame 1 +
+
+ Wide Slider, Frame 2 +
+
+ Wide Slider, Frame 3 +
+
+ Wide Slider, Frame 4 +
+
+ Wide slider, frame 5 +
+
+ Wide Slider, Frame 6 +
+
+ Wide Slider, Frame 7 +
+
+
+ + +
+
+
+ + + + + + + +
+
+ +

+ The same slider, but with vertical frames of the same size—all images + 600×800. +

+
+
+
+
+ Vertical slider, frame 1 +
+
+ Vertical slider, frame 2 +
+
+ Vertical slider, frame 3 +
+
+ Vertical slider, frame 4 +
+
+ Vertical slider, frame 5 +
+
+ Vertical slider, frame 6 +
+
+ Vertical slider, frame 7 +
+
+
+ + +
+
+
+ + + + + + + +
+
+ +

+ A separate example: a toggle for the frame-switching animation mode— + slide (slide), fade (crossfade), and none (no transition). + The mode is set by the attribute data-slider-anim on the shape. +

+
+
+ + + +
+
+
+
+ Animation example, frame 1 +
+
+ Animation example, frame 2 +
+
+ Animation example, frame 3 +
+
+ Animation example, frame 4 +
+
+
+ + +
+
+
+ + + + +
+
+ +

Callout: Important paragraph with an emoji

+ + +

Video: Card with a shadow and fixed small corners

+
+
+ +
+
An example of a case-style video card.
+
+ +

Result

+

+ The template is ready to be copied into a new case study: all that’s left is to replace the fish with the actual text and insert the project’s real links and media. +

+
+
+ + {{> projects-section-mp}}{{> projects-section}} +{{> contact-section}} +{{> footer}} +{{> cookie-notice}} +{{> nav-more-floating}} + + + + + + diff --git a/src/pages/resume.en.html b/src/pages/resume.en.html new file mode 100644 index 0000000..3eddfb1 --- /dev/null +++ b/src/pages/resume.en.html @@ -0,0 +1,844 @@ + + + + + + + Resume — Nikolai Mamadaev + {{> head-links}} + + + + {{> header-minimal}} + {{> fab-stack-resume}} +
+
+
+ Nikolai Mamadaev +
+

Resume

+

Nikolai Mamadaev

+

Senior UX/UI Designer, Product Designer

+
+
+ +
+ +
+
+
Portfolio
+
mamadaevv.site
+
+
+
Salary Range
+
250,000 – 310,000 rubles
+
+
+
Work Format
+
Remote
+
+
+
Email
+
nik@mamadaevv.site
+
+
+
Social Media
+
@mamadaevv
+
+
+ +
+ +

Work Experience

+ +
+ +
+
+

Astratech

+

January 2026 — Present

+
+

Development and support of digital systems and tools to improve employee productivity.

+ +
+
+
+

Responsibilities:

+
    +
  • Worked on interface design
  • +
+
+
+

Achievements:

+
    +
  • Successfully completed assigned tasks
  • +
+
+
+

Stack:

+
    +
  • Figma
  • +
  • HTML/CSS
  • +
  • AI/LLM
  • +
+
+
+
+
+ +
+ +
+
+

Primo RPA

+

February 2023 — November 2025 (2 years and 10 months)·primo-rpa.com

+
+

A Russian enterprise-grade RPA platform: a suite of desktop robot development environments and web services for management, analytics, and ML. I worked as a lead designer on the entire product line, consisting of 6 products.

+ +
+

AI Server Platform (SaaS)

+

A control panel for training, running, testing, and other operations involving neural networks deployed within the company’s internal network.

+
+
+

Responsibilities:

+
    +
  • Designing the model management interface: training, deployment, testing, versioning, and monitoring
  • +
  • Developing workflows for Smart OCR—extracting data from various types of documents
  • +
  • Designing document markup and validating recognition results
  • +
  • Managing the states of long-running processes: model training, progress, errors, rollback
  • +
  • Preparing interactive prototypes and overseeing implementation
  • +
  • Conducting interviews with ML engineers and business users to validate behavioral models
  • +
+
+
+

Achievements:

+
    +
  • Packaged complex ML logic into an interface that is understandable not only to ML engineers but also to business analysts without a technical background
  • +
  • Streamlined work with models into a single, predictable 4-step workflow instead of 9 disparate screens
  • +
  • Reduced the time required to configure a new model from 40 to 15 minutes, based on test results
  • +
  • Designed a document annotation interface that reduced support requests on this topic by 60%
  • +
  • Conducted 8 usability sessions and, based on the results, revised the key model training scenario
  • +
+
+
+

Stack:

+
    +
  • ML / neural networks
  • +
  • Smart OCR
  • +
+
+
+
+ +
+ +
+

Robot Automation Studio (Windows)

+

An environment for developing and debugging robots for business process automation.

+
+
+

Responsibilities:

+
    +
  • Designing the interface for a professional desktop IDE: workspace, toolbars, process tree, debugger
  • +
  • Developing the product’s component library and visual language
  • +
  • Designing debugging scenarios: breakpoints, step-by-step execution, variable inspection
  • +
  • Designing support for large activity trees and nesting
  • +
  • Working in tandem with the development team on component implementation, providing author supervision
  • +
  • Conducting regular design reviews within the team
  • +
+
+
+

Achievements:

+
    +
  • Updated the product’s visual language to the Windows 10/11 standard—components are now a generation more modern
  • +
  • Redesigned over 80 screens and dialogs, bringing them into a unified grid and typography
  • +
  • Compiled a library of 140 components, covering 90% of the interface’s needs
  • +
  • Converted icons and some illustrations to vector graphics: ensuring correct display at any zoom level and DPI
  • +
  • Reduced the time it took the team to build a new screen from 2 days to 4 hours by using pre-built components
  • +
+
+
+

Stack:

+
    +
  • Desktop IDE
  • +
  • Windows 10/11
  • +
  • Component library
  • +
+
+
+
+ +
+ +
+

Robot Automation Studio (Linux)

+

An environment for developing and debugging robots for business process automation.

+
+
+

Responsibilities:

+
    +
  • Adapting the Studio design for the Linux version using the Avalonia framework
  • +
  • Designing components while taking into account the framework’s technical limitations
  • +
  • Synchronizing the visual language between the Windows and Linux versions of the product
  • +
  • Collaborating with the development team to determine what is technically feasible in Avalonia and what requires workarounds
  • +
  • Preparing component behavior specifications for implementation
  • +
+
+
+

Achievements:

+
    +
  • Compiled an extensive library of 95 components for Avalonia, which did not exist in the project before I joined
  • +
  • Ensured product consistency across two platforms with different technology stacks
  • +
  • Reduced the number of visual discrepancies between versions from several dozen to just a few isolated cases
  • +
  • Provided the Linux version team with a ready-made set of solutions instead of having to design each screen from scratch
  • +
+
+
+

Stack:

+
    +
  • Avalonia
  • +
  • .NET
  • +
  • Linux
  • +
+
+
+
+ +
+ +
+

Idea Hub Dashboard (SaaS)

+

Enables the collection and analysis of employee suggestions, performance evaluation, and monitoring of automation implementation status. Analytics on key performance indicators and a high-level view of automation.

+
+
+

Responsibilities:

+
    +
  • Designing dashboards and analytical views for robotization KPIs
  • +
  • Managing the idea lifecycle: submission → evaluation → prioritization → implementation → impact measurement
  • +
  • Section information architecture, working with dense tables, filters, and bulk operations
  • +
  • Designing a role-based model: employee, analyst, manager
  • +
  • Selecting data visualization types for specific management questions
  • +
+
+
+

Achievements:

+
    +
  • Integrated high-level analytics and work on a specific idea into a single continuous workflow without switching between sections
  • +
  • Designed data visualizations so that managers can see the impact of automation without having to manually export data to Excel
  • +
  • Reduced the process from idea submission to evaluation from 6 steps to 3
  • +
  • Designed 12 analytics widgets covering customers’ key questions about the ROI of automation
  • +
+
+
+

Stack:

+
    +
  • Analytics / Dashboards
  • +
  • KPIs
  • +
  • Data Visualization
  • +
+
+
+
+ +
+ +
+

Orchestrator Automation Management Tool (SaaS)

+

Ensures seamless system operation and management of hundreds of robots: launching, monitoring, and management.

+
+
+

Responsibilities:

+
    +
  • Designing a management interface for a fleet of hundreds of robots: schedules, queues, priorities, and monitoring
  • +
  • Developing state management and error handling for bulk launches
  • +
  • Designing a system for notifications and alerts regarding failures
  • +
  • Working with complex tables: sorting, filtering, bulk actions, saved views
  • +
  • Prototyping complex scenarios for validation prior to development
  • +
+
+
+

Achievements:

+
    +
  • Designed a system to manage hundreds of objects so that the operator doesn’t get lost in the scale: from the big picture to a specific robot in just 2 clicks
  • +
  • Aligned the service with a unified design system alongside the rest of the product line’s web products
  • +
  • Reduced operator response time to robot failures from 12 to 4 minutes thanks to a redesigned alert system
  • +
  • Consolidated 5 different robot list views into a single customizable one
  • +
+
+
+

Stack:

+
    +
  • Monitoring
  • +
  • Schedules / Queues
  • +
  • Notifications / Alerts
  • +
+
+
+
+ +
+ +
+

Q&A Portal (WEB)

+

A platform for posting questions and receiving answers from support

+
+
+

Responsibilities:

+
    +
  • Designing workflows for posting questions, providing answers, and searching the accumulated knowledge base
  • +
  • Designing the portal interface based on the company’s common design system
  • +
  • Developing a role model: user, expert, support team, moderator
  • +
  • Designing search mechanics and suggestions for similar questions when posting
  • +
+
+
+

Achievements:

+
    +
  • Launched the portal using off-the-shelf components from the design system in 3 weeks instead of the planned 8
  • +
  • Reduced the support workload by approximately 25% by reusing existing answers
  • +
  • The suggestion feature for similar questions reduced duplicate questions by 45%
  • +
  • Ensured visual consistency with other products in the line—the portal does not look like a third-party service
  • +
+
+
+

Stack:

+
    +
  • Web portal
  • +
  • Design system
  • +
  • Knowledge base
  • +
+
+
+
+ +
+ +
+

Company-wide

+
    +
  • I initiated a visual refresh of the entire product line—the company decided to redesign the products upon my arrival
  • +
  • I developed and implemented a unified design system for web services, integrating the company’s brand identity with the new interface structure
  • +
  • The design system was adopted by four product teams; it includes 210 components and theming tokens
  • +
  • Reduced the average time to prepare mockups across the product line by 35%
  • +
  • Created and maintained a UI kit to ensure consistency and accelerate development
  • +
  • Conducted more than 20 user studies and usability sessions during my tenure
  • +
  • Oversaw implementation, participated in design reviews, product discussions, and release planning
  • +
  • Served as the sole lead designer for an entire product line consisting of 6 products and two platforms
  • +
+
+
+ +
+ +
+
+

Lunacy (Icons8)

+

July 2022 – January 2023 (7 months) · icons8.com/lunacy

+
+

A graphic editor for working on interface designs and other mockups. Similar to Sketch App and Figma.

+ +
+
+
+

Responsibilities:

+
    +
  • Designing the graphic editor’s interface: tools, property panels, working with the canvas and layers
  • +
  • Documenting solutions as user flows and handing them off to developers
  • +
  • Creating complex interactive prototypes in Protopie to demonstrate tool behavior
  • +
  • Illustrating missing icons in the product’s style
  • +
  • Making suggestions for improving the editor’s functionality
  • +
  • Participating in discussions about product solutions with the team
  • +
+
+
+

Achievements:

+
    +
  • Designed 6 functional blocks for the editor, including work with components and styles
  • +
  • Created 15+ prototypes in Protopie, which helped eliminate unsuccessful solutions before development
  • +
  • Some of my feature suggestions were included in product releases
  • +
  • Designed over 60 icons to complement the editor’s system set
  • +
  • Worked on a product for a professional audience of designers, where the requirements for interface details are higher than usual
  • +
+
+
+

Stack:

+
    +
  • Protopie
  • +
  • Graphics editor
  • +
  • Icons / Illustrations
  • +
+
+
+
+
+ +
+ +
+
+

MANU Video Game Maker

+

January 2019 — December 2021 (3 years)·manu.co

+
+

A game engine for creating video games without writing code.

+ +
+
+
+

Responsibilities:

+
    +
  • End-to-end product design of the engine: from interaction concepts to the final UI
  • +
  • Designing interface behavior for complex user scenarios
  • +
  • User research: observation, in-depth interviews, surveys
  • +
  • Creating user personas and empathy maps
  • +
  • Working with product analytics and metrics tied to user scenarios
  • +
  • Layout of the website’s homepage on Tilda, designing the site’s information architecture together with the team
  • +
  • Supervising the work of the web graphic designer
  • +
  • Hiring for the product department: conducting interviews and selecting specialists
  • +
  • Leading the department and establishing workflows for the entire product team
  • +
  • Overseeing the creation of user documentation
  • +
  • Implementing automation tools (Integromat, Zapier) for internal tasks
  • +
+
+
+

Achievements:

+
    +
  • Led a large-scale redesign of the entire program: established a fundamentally new concept and style
  • +
  • Designed the interface behavior for over 100 complex user scenarios
  • +
  • Designed the product’s design system from scratch: 120 components
  • +
  • Received a lot of positive, and in some cases enthusiastic, user feedback—the product became much easier to navigate
  • +
  • Onboarding completion rates increased from 34% to 58% following the redesign
  • +
  • Conducted 25 in-depth interviews and 4 rounds of surveys, and revised 3 key scenarios based on the results
  • +
  • Hired 4 specialists for the product department and grew from a designer to a team lead
  • +
  • Established departmental processes: design reviews, backlog management, and handoff to development
  • +
  • Automated the team’s internal routines, freeing up time for product tasks
  • +
+
+
+

Stack:

+
    +
  • Tilda
  • +
  • Integromat / Zapier
  • +
  • User research
  • +
+
+
+
+
+ +
+ +
+
+

Aegees Messenger

+

October 2017 — December 2018 (1 year and 3 months)·aegees.com

+
+

A cross-platform messenger with secure storage and audio calls.

+ +
+
+
+

Responsibilities:

+
    +
  • Designing the messenger for five platforms simultaneously: Android, iOS, macOS, Windows, and Linux
  • +
  • Developing use cases for secure storage and audio calls
  • +
  • Designing scenarios for registration, encryption, and access recovery
  • +
  • Adapting a unified product logic to each platform’s guidelines
  • +
  • Supervising the work of international illustrators in the preparation of graphic assets
  • +
  • Preparation of materials for app stores
  • +
+
+
+

Achievements:

+
    +
  • Developed a unified visual language for the product while adhering to the guidelines of five platforms simultaneously
  • +
  • Designed over 90 screens across five platform versions
  • +
  • Ensured a steady flow of graphic assets from external contractors without compromising the design style
  • +
  • Simplified the secure storage workflow so that people without technical training could use it
  • +
  • Worked in the sensitive areas of privacy and security, where a single interface error can cost user trust
  • +
+
+
+

Stack:

+
    +
  • Android
  • +
  • iOS
  • +
  • macOS
  • +
  • Windows
  • +
  • Linux
  • +
+
+
+
+
+ +
+ +
+
+

Orion Innovation (formerly MERA)

+

July 2016 – October 2017 (1 year and 4 months)·orioninnovation.com

+
+

Software development for external clients.

+ +
+
+
+

Responsibilities:

+
    +
  • Worked in a design department with up to 8 people
  • +
  • Creating user personas and mapping product functionality based on user needs
  • +
  • Creating wireframes and designing the final UI
  • +
  • Designing use cases, screen maps, and micro-animation demos
  • +
  • Preparing mood boards and design concepts, and discussing them with clients
  • +
  • Preparing and delivering presentations on design concepts
  • +
  • Turning mockups into prototypes, writing scripts, and conducting qualitative usability testing
  • +
  • Making revisions based on test results
  • +
  • Overseeing the implementation of designs by developers
  • +
  • Participating in design reviews: analyzing colleagues’ work and defending your own decisions
  • +
  • Direct communication with international clients to discuss design and receive project briefs
  • +
+
+
+

Achievements:

+
    +
  • Conducted 10 usability testing sessions, from writing the test script to implementing changes
  • +
  • Learned to work with the Smart TV platform, which was new to me, and brought the project to successful release in the app store
  • +
  • Communicated directly with international clients, without intermediaries
  • +
  • Actively participated in improving the company’s design department workflow
  • +
  • Completed the full product design cycle on 5 client projects
  • +
+
+
+

Stack:

+
    +
  • Smart TV
  • +
  • Usability testing
  • +
  • Mood boards / design concepts
  • +
+
+
+
+
+ +
+ +
+
+

SpaceshipApps Studio

+

June 2015 — June 2016 (1 year and 1 month)·spaceshipapps.ru

+
+

Mobile app and website development studio.

+ +
+
+
+

Responsibilities:

+
    +
  • Designing mobile and web products as part of the studio’s workflow
  • +
  • Worked across various sectors: social gaming, beauty services, food delivery, voice interfaces, legal services, and collaborative tools
  • +
  • Responsive web design and design of administrative dashboards
  • +
  • Illustrating icons and preparing graphics for projects
  • +
  • Preparing mockups for handoff to development
  • +
+
+
+

Achievements:

+
    +
  • Launched 6 products in one year: a geolocation-based social game with real-world quests, an app for booking beauty professionals, a food delivery service, a voice-based word game, a website and admin panel for a copyright registration service, and a mobile “whiteboard” for collaboration
  • +
  • Learned to quickly get up to speed in new subject areas and maintain quality while keeping up with the studio’s fast pace
  • +
  • Handled the full range of tasks: mobile, web, admin panels, and graphics
  • +
  • Laid the groundwork for transitioning from execution-focused design to product-focused design
  • +
+
+
+

Stack:

+
    +
  • Mobile
  • +
  • Web
  • +
  • Dashboards
  • +
  • Graphics
  • +
+
+
+
+
+ +
+ +

Skills

+
+
+

Design

+

UX/UI, product design, information architecture, responsive design, design systems

+
+
+

Research

+

Interviews, surveys, usability testing, JTBD, empathy maps, conversion, retention, NPS

+
+
+

Tools

+

Figma, Protopie, Sketch, Adobe Creative Suite, Tilda, AI tools

+
+
+

Management

+

Team building, Agile, Kanban, project supervision, working with stakeholders

+
+
+ +
+ +

About Me

+

+ I’ve been in design for over 10 years, and in recent years I’ve focused on product design for complex B2B products. I work at the intersection of design and product management: I conduct research, formulate hypotheses and features, help with prioritization, and participate in release planning. +

+

+ I love diving into complex topics and making them understandable—which is why I feel right at home with products like IDEs, orchestration tools, and ML dashboards, where a typical designer might find the work boring or intimidating. +

+

+ I don’t wait for someone else to solve a problem—I build my own tools. I’ve created a private AI plugin for Figma, automate processes using n8n and PostgreSQL, and turn my ideas into working products through AI-assisted development. My skills for Alisa have attracted over 37,000 and 33,000 users, and the Slider Set file for designers has been downloaded more than 20,000 times. +

+

+ I’m active in the community: I run the Telegram channel “Design Isn’t Pizza,” share useful resources on the Figma Community, gave a talk on analytics at a Yandex meetup, and have won hackathons—my most memorable victory was at the Yandex.I’m currently in St. Petersburg working on a QR code payment app. +

+

+ English—B1. I work remotely and communicate smoothly with a distributed team. +

+
+
+ + {{> footer}} + {{> cookie-notice}} + + + diff --git a/src/partials/content-edit-fab-stack.en.html b/src/partials/content-edit-fab-stack.en.html new file mode 100644 index 0000000..d7c83d4 --- /dev/null +++ b/src/partials/content-edit-fab-stack.en.html @@ -0,0 +1,21 @@ +
+ +
diff --git a/src/partials/cookie-notice.en.html b/src/partials/cookie-notice.en.html index d983956..c8d18c8 100644 --- a/src/partials/cookie-notice.en.html +++ b/src/partials/cookie-notice.en.html @@ -1,12 +1,12 @@ - + diff --git a/src/partials/fab-stack-home-contact.en.html b/src/partials/fab-stack-home-contact.en.html new file mode 100644 index 0000000..4cb5d26 --- /dev/null +++ b/src/partials/fab-stack-home-contact.en.html @@ -0,0 +1,62 @@ +
+
+ + +
+ + + +
+{{> content-edit-fab-stack}} diff --git a/src/partials/fab-stack-resume.en.html b/src/partials/fab-stack-resume.en.html new file mode 100644 index 0000000..9064ce8 --- /dev/null +++ b/src/partials/fab-stack-resume.en.html @@ -0,0 +1,12 @@ + +{{> content-edit-fab-stack}} diff --git a/src/partials/footer-spacer.en.html b/src/partials/footer-spacer.en.html new file mode 100644 index 0000000..95d1a74 --- /dev/null +++ b/src/partials/footer-spacer.en.html @@ -0,0 +1,3 @@ + diff --git a/src/partials/footer.en.html b/src/partials/footer.en.html new file mode 100644 index 0000000..49b4bcc --- /dev/null +++ b/src/partials/footer.en.html @@ -0,0 +1,8 @@ + diff --git a/src/partials/head-plyr.en.html b/src/partials/head-plyr.en.html new file mode 100644 index 0000000..5dd0d30 --- /dev/null +++ b/src/partials/head-plyr.en.html @@ -0,0 +1 @@ + diff --git a/src/partials/head-scripts.en.html b/src/partials/head-scripts.en.html new file mode 100644 index 0000000..1340fa0 --- /dev/null +++ b/src/partials/head-scripts.en.html @@ -0,0 +1,2 @@ + + diff --git a/src/partials/header-case.html b/src/partials/header-case.html index 53ff647..0a31dc3 100644 --- a/src/partials/header-case.html +++ b/src/partials/header-case.html @@ -1,7 +1,7 @@
- +