Интеграция с 1С
Входит в группу компаний ITC
+7 499 286-92-90
Наши партнеры
© 2023, ITC – аккредитованная IT-компания
117342, Москва, Волгоградский проспект, 26, стр. 1
2
Давайте обсудим развитие вашего проекта
Прошкина В.
Руководитель производства
Нажимая на кнопку, я соглашаюсь на обработку своих персональных данных
Ваши контакты
name, ваша заявка успешно отправлена. Наши менеджеры в ближайшее время вам перезвонят.
Sistema BioTech

Sistema BioTech. Разработка личного кабинета для медицинского бренда BioTech на Битрикс

Sistema BioTech — помогает пользователям, которые приобретают тест ДНК оффлайн, получать результаты онлайн с помощью этого личного кабинета и тем самым сократить время ожидания результатов.

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

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

Для нас было особенно интересно взяться за проект, т.к. речь в данном случае шла о нестандартной выгрузке из 1С на сайт, как это обычно бывает при разработке интернет-магазинов. Наше разработанное решение даёт нашему заказчику конкурентное преимущество.
Цели и задачи
  • Разработка дизайна личного кабинета, по фирменному стилю заказчика, предусмотрев возможность дальнейшего улучшения
  • Сверстать и запрограммировать личный кабинет по согласованному дизайну
  • Настроить двухфакторную аутентификацию по номеру телефона пользователя при регистрации и авторизации
  • Настроить выгрузку данных по исследованиям через API предоставленной третьей компанией, которая и проводит ДНК тестирование
Задачи проекта
А в качестве базовой платформы мы выбрали CMS Bitrix. Причин для этого много.

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

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

В-третьих, очень удобная платформа для масштабирования проекта и прикрепления новых функций в будущем.
Базовая платформа
В изначальной версии использовалась документация предоставленная компанией RULIS. «Описание протокола взаимодействия между МИС ЛПУ и Лабораторной Информационной Системой RULIS». В процессе работы, в эту документацию вносились изменения и впоследствии мы даже стали невольными «виновниками» её модернизации и актуализации.
API
В ходе реализации проекта было реализовано два endpoint. Один для клиентской части и другой для административной. Сделано это для повышения безопасности и стабильности работы нашего решения.

Помимо этого была заложена возможность микросерверной архитектуры. При последующем масштабировании проекта, его функционал можно будет распределить между разными серверами и тем самым повысить стабильность работы при больших нагрузках, а также сделать более защищенным от возможных атак.
Архитектура
При разработке фронтенда мы опирались на Node. js  и фраймворк vue.js. Выбрали его, т.к. посчитали, что совокупность гибкости, производительности и относительной простоты использования полностью отвечают требованиям нашего проекта, как согласно ТЗ, так и согласно тем ресурсам, которыми мы располагали при его реализации.
Фронтенд
Личный кабинет
Страница личного кабинета с отображением данных профиля и осуществленными исследованиями. Ещё на этапе дизайна решили отказаться от варианта решения, когда под каждый результат создавалась бы страница. В данном случае, это попросту не нужно было.
Имеется возможность переключится в режим редактирования профиля без перехода на другую страницу. Лишние переходы нам ни к чему, внимание пользователей не рассеивается, всё максимально интуитивно понятно.
Страница авторизации, регистрации и подтверждения пароля
Обязательно внедрили валидацию всех форм, чтобы сделать процесс регистрации максимально понятным и удобным для пользователей
Демонстрация финального результата
Получение итогов тестирования. Пользователю остается лишь войти в личный кабинет и зарегистрировать в личном кабинете номер заказа. Cron по определённым периодам будет отправлять запрос по API и подгружать результат. Для демонстрации работы, скрипт загружается вручную, а не через cron.
Ограничение на получение чужих результатов. Предельно важный момент. Пользователи бывают разные, кто-то по невнимательности может допустить ошибку и вписать не тот код, а кто-то и по злому умыслу. Нам важно было не допустить этого. Тем более, когда речь идёт о такой чувствительной вещи, как медицинские исследования. Идёт обязательная проверка. Что и как проверяется, мы, по соображениям безопасности, рассказать не можем.
Возможность заменить данные в профиле.
Проблемы, с которыми мы столкнулись
В процессе разработки, мы столкнулись с проблемой, когда API дорабатывалась параллельно нашей разработки. Из-за этого документация по ней не всегда отражало полноту картины. Это существенно замедляло и затрудняло реализацию проекта. Самым важным решением было — общаться с компанией, предоставляющей API напрямую с помощью общих митов с форматом вопрос-ответ. Самое важно — вопросы, необходимо готовить заранее.

Другая немаловажная проблема — отсутствие тестовой базы и отсутствие тестовых заказов, которые мы могли бы притянуть для тестирования. И если проблему с тестовым заказом покрыл клиент, то проблему с базой решали своими силами. Ну как решили. Её невозможно было решить в принципе. Мы максимально аккуратно работали с боевой базой. В каком-то смысле, это нам даже помогло, т.к. в процессе работы была обнаружена уязвимость в API и мы, совместно с компанией разработчиком API, смогли закрыть её на нашем решении.

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

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

  • настраивать рекламные рассылки пользователям, в том числе и триггерные
  • добавлять акции
  • добавлять бонусы, в том числе и персонализированные
  • добавлять некоторые исследования в избранное
Опыт, который мы приобрели
Проект нетривиальный, мы такие любим, потому что они выбивают тебя из твоих привычных задач, помогают сконцентрироваться на достижении целей, которые с одной стороны не являются чересчур сложными, но с другой — они необычны. Наверняка многие разработчики закрывали задачи по выгрузке товаров из 1с на сайт, но не многие выгружали из ранее незнакомой системы, незнакомые результаты (как по структуре информации, так и по способу вывода).Мы поняли для себя следующие вещи:

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

Во-вторых, совместные миты с компанией, которая предоставляет API, эффективнее, чем работа через запросы по почте.

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