Пет-проект Sibedge Coins

Сибэджики 2.0 (ВК).jpg

В 2019 году мы создали виртуальную валюту Sibedge Coins, которую внутри компании называем «сибэджиками». Идея была тепло принята сотрудниками и со временем превратилась в полноценный пет-проект. Рассказываем, как прошли долгий путь от таблиц в Google Docs до полноценной веб-платформы со встроенным маркетплейсом и удобной системой транзакций.

Что такое Sibedge Coins

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

Можно объединиться с коллегами и приобрести в офис игровую консоль, украшения для рабочих мест или, например, массажное кресло. Кроме того, можно обменять Sibedge Coins на скидки в сторонних магазинах по текущему внутреннему курсу к рублю.

Если же материальные блага человека не интересуют, он может пожертвовать виртуальную валюту в один из фондов помощи тяжелобольным детям, пенсионерам или бездомным животным. За один только 2021 год сотрудники Sibedge пожертвовали благотворительным фондам более 40 000 рублей.

Сибэджики 2.0 (Блог) 3.jpg

Как заработать Sibedge Coins

Получить Sibedge Coins можно несколькими способами:

  • За проведение тренингов и воркшопов или участие в них.
  • За изучение английского языка и прохождение курсов.
  • За выступления на конференциях и написание технических статей.
  • За каждую годовщину работы в компании и многое другое.

История разработки

В 2019 году Sibedge Coins начислялись сотрудникам в ручном режиме. Данные аккуратно записывались в таблицу, которая была доступна участникам программы по ссылке. В отдельном чате люди договаривались о совместных покупках и дарили сибэджики друг другу.

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

Pre-Alpha-версия

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

Работу над системой поручили бэкенд-разработчику. Он написал каркас системы на .NET 3.0, но её было невозможно масштабировать и улучшать, что автоматически делало проект нежизнеспособным. Приняли решение расширить команду дополнительными инженерами и полностью переписать код с учётом обновлённых требований.

Сибэджики 2.0 (Блог) 2.jpg

Alpha-версия

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

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

Beta-версия

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

Администраторы могут:

  • Начислять сибэджики, одобрять или отклонять транзакции.
  • Добавлять в систему статьи начисления и списания.
  • Создавать лимитированные сборы для совместных покупок.
  • Создавать нелимитированные сборы на благотворительность.

Пользователи могут:

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

Система была в очередной раз переписана на .NET версии 6.0 и Entity Framework. Данные о транзакциях хранятся в PostgreSQL, а изображения товаров подгружаются из объектного хранилища MinIO. Авторизация и аутентификация реализованы с помощью Active Directory и корпоративной CRM Bitrix 24.

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

Снимок экрана 2023-03-16 134438.png

В двух словах работу системы изнутри можно описать так. С фронтенда приходит запрос в формате JSON. В нём есть обязательные и необязательные для заполнения поля, включающие тип транзакции, сумму перевода, ID отправителя, ID получателя и другие. Каждая транзакция, в зависимости от типа, осуществляется в ходе одной или двух операций. Например, у одного человека сумма списывается, а второму начисляется. Перевод завершается после одобрения транзакции администратором.

Release-версия

Релизная версия системы Sibedge Coins получила дружелюбный и понятный графический интерфейс, а фронтенд-составляющая была переписана с Angular на React. Платформа обзавелась новым разделом «Рейтинги», где можно увидеть, кто из коллег накопил больше всех сибэджиков.

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

Подводя итоги

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

Например, в маркетплейс мы добавим полноценную «Корзину» для покупки сразу нескольких товаров. Каталог товаров будет значительно расширен. Идей у нас море, так что сотрудников ждёт немало сюрпризов. Кстати, курс Sibedge Coins мы планируем связать с мировой экономикой, чтобы он соответствовал современным реалиям.