Разработали P2P-биржу для обмена криптовалютой
Подключились к in-house команде клиента и за 4 месяца c нуля выпустили личный кабинет для арбитражников и административную панель для команды. Рассказываем что было сделано.
Вводные данные
Клиент
Компания клиента - это компания, специализирующаяся на обмене криптовалютными лотами с использованием арбитражных стратегий.
Основная стратегия компании заключается в предоставлении арбитражникам возможностей для заработка на разнице курсов криптовалют. Компания продает арбитражникам USDT по сниженной цене, что позволяет им получать прибыль при последующей продаже на рынке.
Проблема
Интерфейс существующего личного кабинета был неинтуитивным и сложным для понимания, особенно для новых пользователей. Это затрудняло работу с кабинетом и вызывало неудобства у пользователей.
Кроме того, отсутствие адаптивности и плохая оптимизация под мобильные устройства также делали использование кабинета неудобным.
Задача
Перед нашей командой стояла задача создать простой и удобный интерфейс личного кабинета для пользователей, а также разработать функциональную административную панель для сотрудников компании.
Заказчик хотел реализовать новый функционал, исходя из текущих и будущих потребностей бизнеса, которые улучшили бы работу как пользователей, так и команды технической поддержки.
Среди этих функций были переработка логики статусов лотов, расширенные возможности аналитики, автоматизированные процессы перевода и отчёты.
Процесс работы
1.Проектирование
Для frontend-части был выбран React. Такой выбор позволил создать динамичный и отзывчивый интерфейс, который легко адаптируется под различные устройства и экраны. Мы использовали часто используемую нами библиотеку Material UI, чтобы эффективно и быстро разработать компоненты с единым стилем.
Для разработки backend части с нашей стороны был выбран язык программирования Go, чтобы in-house команда клиента могла самостоятельно поддерживать проект.
В работе над проектом с нашей стороны участвовали шесть человек: два Go разработчика, React разработчик, UX/UI дизайнер, менеджер проекта и тестировщик.
2.Разработка
Дизайн и создание административной панели:
- Был реализован функционал добавления новых пользователей с различными ролями (Администратор, Сотрудник поддержки, Пользователь).
- Добавлено отображение информации по текущим лотам во всех статусах и изменение статусов после изменения его в системе.
Дизайн и создание личного кабинета пользователя:
- Отображение всех лотов, поступающих в систему.
- Интеграция с существующей системой клиента для получения данных о лотах и их отображения в нашей системе.
- Внедрение функционала распределения лотов между пользователями и логики их обработки.
- Обеспечение возможности пользователям брать лоты в работу или отказываться от них.
- Реализация подтверждения выплат с загрузкой чека об оплате для перевода лота в статус «Исполнен».
Пользователь может взаимодействовать с лотами следующим образом:
- Взять лот в работу: Если пользователь решает работать с лотом, он берет его в работу, и лот переходит в соответствующий статус. Для подтверждения выполнения лота требуется загрузить чек об оплате. Без чека лот не может быть исполнен.
- Отказаться от лота: Пользователь также имеет возможность отказаться от лота, если не может или не хочет с ним работать.
Также пользователь может просмотреть все свои лоты в финальном статусе во вкладке “Архив” и загрузить дополнительные документы, если понадобится. Все действия, связанные с лотами, отображаются в личном кабинете сотрудника поддержки, который может видеть историю всех операций, фильтровать их по различным параметрам и выгружать отчеты в формате XLS для анализа и сверки.
Многим пользователям удобнее работать с сайта через мобильные устройства, мы создали адаптивную версию сайта.
Внедрение системы метрик для отслеживания работы платформы
Для мониторинга активности пользователей и отслеживания количества поступающих лотов с разбивкой по платежным сервисам была внедрена система мониторинга на базе Graphana и Prometheus. Это позволило сотрудникам поддержки в реальном времени отслеживать ситуацию с личными кабинетами пользователей и своевременно реагировать на возможные ошибки или проблемы.
Также это позволило понять, насколько нагружены пользователи и сайт в текущий момент. Кроме того, система мониторинга позволит выявить ошибки в работе с лотами, если они будут находиться в каком-либо статусе дольше положенного времени.
Разработка функционала для финансового менеджера
Баланс пользователей пополняется через административную панель сотрудниками поддержки. Изначально процесс пополнения включал в себя два основных шага:
- Сотрудник поддержки изменял баланс пользователя через административную панель
- Далее финансовый менеджер вручную осуществлял перевод криптовалюты с кошелька компании на кошелек пользователя.
Из-за большого объема переводов было принято решение автоматизировать процесс перевода, чтобы разгрузить сотрудников.
Теперь после пополнения ручной корректировки баланса сотрудником поддержки, финансовому менеджеру необходимо выбрать в общем списке транзакций по какой именно транзакции необходимо осуществить перевод и ввести код из Telegram, для подтверждения перевода. После чего инициализировался перевод с кошелька на кошелек.
Для упрощения операции к каждому пользователю был привязан один кошелек, чтобы не возникало ситуаций с переводом на некорректный кошелек. Чтобы обеспечить безопасность и разделение обязанностей, доступ к этому функционалу предоставляется только пользователям с ролью “Финансовый менеджер”.
Добавление дополнительного функционала для сотрудников поддержки.
Для сотрудников поддержки была разработана возможность просмотра отчетов в административной панели, а также фильтрация отчетов по различным параметрам с выгрузкой их в формате XLS.
Тестирование нагрузки системы
Для обеспечения стабильности и производительности разработанных систем был проведён этап тестирования. Были написаны скрипты, имитирующие поведение пользователей в личном кабинете, чтобы проверить нагрузку системы. Эти скрипты симулировали различные сценарии использования, такие как вход в систему, взаимодействие с лотами, подтверждение выплат и отказ от лотов.
Результаты
- За четыре месяца работы мы реализовали с нуля личный кабинет для арбитражников и административную панель для команды клиента.
- После выпуска MVP реальные пользователи и сотрудники компании успешно перешли на новую систему.