Портал лаборатории Биотех
Вернуться к списку-
Тип проекта:Социальная сеть
-
Тематика сайта:Медицина и фармация
-
Редакция продукта:Старт
-
Сайт:
-
Партнер:
Информация для введения
На данном проекте нашим заказчиком выступила компания, один из лидеров российского рынка по внедрению инновационных медицинских и биологических решений в практику здравоохранения.
Один из их продуктов - это ДНК тестирование. Каждое из исследований не только информирует человека о его состоянии здоровья и рисках приобретения тех или иных осложнений в будущем, но и формирует индивидуальную научно обоснованную высокоэффективную программу лечения и профилактики, понятную не только специалисту, но и обычному человеку.
Для нас было особенно интересно взяться за проект, т.к. речь в данном случае шла о нестандартной выгрузке из 1с на сайт, как это обычно бывает при разработке интернет-магазинов. Наше разработанное решение даёт нашему заказчику конкурентное преимущество.
Информация о проекте
https://lk.sistemabiotech.ru/ - помогает пользователям, которые приобретают тест ДНК оффлайн, получать результаты онлайн с помощью этого личного кабинета и тем самым сократить время ожидания результатов.
Цели, которые поставил клиент перед проектом
Перед нашей командой были поставлены следующие цели:
-
Разработка дизайна личного кабинета, по фирменному стилю заказчика, предусмотрев возможность дальнейшего улучшения
-
Сверстать и запрограммировать личный кабинет по согласованному дизайну
-
Настроить двухфакторную аутентификацию по номеру телефона пользователя при регистрации и авторизации
-
Настроить выгрузку данных по исследованиям через API предоставленной третьей компанией, которая и проводит ДНК тестирование
Задачи проекта
Архитектура
В ходе реализации проекта было реализовано два endpoint. Один для клиентской части и другой для административной. Сделано это для повышения безопасности и стабильности работы нашего решения.
Помимо этого была заложена возможность микросерверной архитектуры. При последующем масштабировании проекта, его функционал можно будет распределить между разными серверами и тем самым повысить стабильность работы при больших нагрузках, а также сделать более защищенным от возможных атак.
API
В изначальной версии использовалась документация предоставленная компанией RULIS. “Описание протокола взаимодействия между МИС ЛПУ и Лабораторной Информационной Системой RULIS”. В процессе работы, в эту документацию вносились изменения и впоследствии мы даже стали невольными “виновниками” её модернизации и актуализации.
Базовая платформа
А в качестве базовой платформы мы выбрали CMS Bitrix. Причин для этого много.
Во-первых, битрикс одна из самых защищённых платформ. Регулярные обновления позволяют быстро закрывать уязвимости.
Во-вторых, готовая админ панель, которая позволяла быстро покрыть 80% необходимого функционала уже при разворачивании CMS.
В-третьих, очень удобная платформа для масштабирования проекта и прикрепления новых функций в будущем.
Фронтенд
При разработке фронтенда мы опирались на Node.js и фраймворк vue.js. Выбрали его, т.к. посчитали, что совокупность гибкости, производительности и относительной простоты использования полностью отвечают требованиям нашего проекта, как согласно ТЗ, так и согласно тем ресурсам, которыми мы располагали при его реализации.
Для выполнения задач было разработано несколько страниц:
Страница личного кабинета с отображением данных профиля и осуществленными исследованиями. Ещё на этапе дизайна решили отказаться от варианта решения, когда под каждый результат создавалась бы страница. В данном случае, это попросту не нужно было.
Имеется возможность переключится в режим редактирования профиля без перехода на другую страницу. Лишние переходы нам ни к чему, внимание пользователей не рассеивается, всё максимально интуитивно понятно.
Страница авторизации, регистрации и подтверждения пароля
Обязательно внедрили валидацию всех форм, чтобы сделать процесс регистрации максимально понятным и удобным для пользователей
Демонстрация финального результата
Получение итогов тестирования. Пользователю остается лишь войти в личный кабинет и зарегистрировать в личном кабинете номер заказа. Cron по определённым периодам будет отправлять запрос по API и подгружать результат. Для демонстрации работы, скрипт загружается вручную, а не через cron.
Ограничение на получение чужих результатов. Предельно важный момент. Пользователи бывают разные, кто-то по невнимательности может допустить ошибку и вписать не тот код, а кто-то и по злому умыслу. Нам важно было не допустить этого. Тем более, когда речь идёт о такой чувствительной вещи, как медицинские исследования. Идёт обязательная проверка. Что и как проверяется, мы, по соображениям безопасности, рассказать не можем.
Возможность заменить данные в профиле.
Проблемы, с которыми мы столкнулись
В процессе разработки, мы столкнулись с проблемой, когда API дорабатывалась параллельно нашей разработки. Из-за этого документация по ней не всегда отражало полноту картины. Это существенно замедляло и затрудняло реализацию проекта. Самым важным решением было - общаться с компанией, предоставляющей API напрямую с помощью общих митов с форматом вопрос-ответ. Самое важно - вопросы, необходимо готовить заранее.
Другая немаловажная проблема - отсутствие тестовой базы и отсутствие тестовых заказов, которые мы могли бы притянуть для тестирования. И если проблему с тестовым заказом покрыл клиент, то проблему с базой решали своими силами. Ну как решили. Её невозможно было решить в принципе. Мы максимально аккуратно работали с боевой базой. В каком-то смысле, это нам даже помогло, т.к. в процессе работы была обнаружена уязвимость в API и мы, совместно с компанией разработчиком API, смогли закрыть её на нашем решении.
При реализации двухфакторной аутентификации неожиданно обнаружилось, что у смс-сервисов есть некоторая дискредитация по отношению к некоторым сотовым операторам. Указывать какие смс сервисы и к каким операторам плохо (дорого) относились, мы не будем. Но получилось ситуация, при которой клиенту пришлось подключать дополнительные тарифы, для того, чтобы сообщения могли уходить всем пользователям. Возможно в будущем, будет иметь смысл перейти на другие варианты двухфакторной аутентификации.
Интересные реализованные фишки
Логотип имитирует пульс, сделано это потому что:
-
отсылка к медицинской тематике личного кабинета
-
наглядная демонстрация, что сайт не подвис
Прелоадер мы сделали с помощью небольшой синей полоски сверху, оформленной в фирменные цвета компании. Он не размещён посреди экрана и оттягивает на себя внимание, как это бывает при обычных прелоадерах, но при этом выполняет свою функцию.
Возможности по расширению функционала
Ещё на этапе разработки были заложены основы, под дальнейшее развитие проекта.
На основе разработанного решения можно:
-
настраивать рекламные рассылки пользователям, в том числе и триггерные
-
добавлять акции
-
добавлять бонусы, в том числе и персонализированные
-
добавлять некоторые исследования в избранное