Система автоматизации
Год назад к нам обратился заказчик, которому понадобилась система упрощения юридических процессов, связанных с регистрацией прав на интеллектуальную собственность. Трудность заключалась в том, что процессы должны быть 100% цифровизированы с сохранением их юридической силы. Для решения этой задачи была выбрана технология блокчейн, которая обеспечивает наивысший уровень целостности и защиты информации. Кроме того, преимуществами технологии являются прозрачность операций, устойчивость ко взлому, невозможность потери или подделки исходных данных.
Задачи
Работа с большими объемами данных (хранение интеллектуальной собственности).
Интеграция с блокчейн.
Интеграция с репозиториями (GitLab, GitHub и др.) для подтягивания исходного кода проектов.
Организация распределенного файлового хранилища с шифрованием данных.
Ролевая пользовательская модель с большим количеством привилегий.
Реализация проекта
Здесь мы расскажем Вам, как мы кастомизировали проект, чтобы повысить его эффективность и функциональность.
Хранение большого объема данных
Перед проектом стояла задача — хранить большие объемы клиентских данных. В ТЗ была заявлена необходимость интеграции со всеми популярными системами хранения кода. Необходимо было подключаться к этим системам, выкачивать код себе и затем упаковывать то, что подлежит регистрации.
Таким образом была реализована возможность подключения к репозиториям, скачивания и хранения большого объема информации от 200 Мб, как CS-Cart в дефолте, до нескольких терабайт, если обеспечивается хранение фото и видео-контента.
Данные при этом могут находиться на разных компьютерах. Блокчейн хранит их в ячейках и связывает друг с другом для создания единой бесперебойной системы записей.
Роли и арбитраж
Также был реализован функционал для арбитража и решения споров. Были введены разные роли и привилегии к этим ролям.
Подсистема внутреннего голосования
Внутреннее голосование необходимо, когда на проекте несколько собственников, которые должны согласовывать каждое изменение. Разработанная система позволяет проводить голосование. На основе большинства голосов принимается решение о дальнейшем развитии продукта.
Электронная цифровая подпись
Проект требовал функционал для подписания документов. Для реализации использования электронной цифровой подписи была проведена интеграция с государственным порталом сервиса, используемым в стране заказчика (аналог Госуслуг). Портал позволяет идентифицировать пользователя и провести цифровую подпись.
Оптимизация записи исходного кода
Операция записи исходного кода в блокчейн стоит денег. Для оптимизации этого процесса было решено хранить код в своем файловом хранилище. Мы выкачали исходный код в свою систему, зашифровали его, а затем сохранили цифровой слепок этого кода (в виде одной строки) в блокчейн. Такая операция стоит несколько центов.
Разработка фронтенда
Разработанное нами приложение взаимодействует со всей остальной инфраструктурой (продвинутой файловой системой, блокчейн и ролевой моделью) через API. Такая сложная интеграция повлекла за собой изменения фронтенд части. Наши разработчики полностью создали фронтенд с нуля и сделали пользование системой удобной и понятной пользователю.
Лучшие практики
Разработка велась на Laravel в соответствии с лучшими практиками. Мы описали user stories. Под них были запрограммированы соответствующие сценарии. Сценарии использовались для составления чек листов тестирования.
Работа велась по методологии Agile с двухнедельными скрамами. Также использовались практики CI/CD, автотесты, обзоры спринтов и демонстрации заказчику раз в 2 недели, что позволило гибко подойти к реализации.
Для разработки мы организовали несколько контуров окружения (среда разработки, среда демонстрации и непосредственно продакшн). На них был настроен автодеплой с помощью Bitbucket и Pipeline.
Результат
Упрощение регистрации прав на интеллектуальную собственность и товарные знаки, с возможностью автоматизации всех процессов и разделением прав пользователей.