Содержание статьи
Background
Летом 2018 года, к нам обратился клиент, который попросил разработать продукт в сфере телемедицины. Суть телемедицины состоит в том, что она позволяет использовать современные компьютерные технологии для обмена медицинской информацией с врачами, без фактического физического присутствия и контакта.
Первой страной, которая внедрила эту технологию стала Норвегия, так как там достаточно много труднодоступных мест, которые не используют традиционную медицинскую помощь.
Есть также достаточно популярные международные сети телемедицины, с различными целями лежащими в основе этих проектов. К примеру, сеть Satellife занимается распространением медицинских знаний дистанционно для подготовки и повышения квалификаций кадрового персонала, а Planet Heres координирует глобальные научные программы, которые ведут цифровую медицинскую документацию, проводят видеоконференции во время операций и многое другое.
Goals
Мотив клиента заключался в том, что он хочет создать определенный продукт, который называется Pix Health. Также он хотел позже создать дополнительный сайт — PixRx, который будет распространять купоны на скидки для лекарств, предоставлять информацию в каких конкретно аптеках можно найти необходимые препараты и где эти аптеки находятся. Оба сервиса должны быть простыми, похожими по стилю, доступными и понятными.
Challenges
- Проведение исследований и нахождение болевых точек.
- Создание уникального продукта, который бы отличал конкретно этот проект от других похожих.
- Выбор платформы с уже существующими врачами для интеграции с нашим сервисом.
- Выбор платежной системы, которая бы списывала автоматически средства с карт, предоставленных клиентом и в то же время подходила под бизнес сценарий продукта.
- Определение наиболее подходящих сервисов для рассылки email и SMS уведомлений.
Solution
Стартовали мы с лендинга, для того, чтобы была возможность скорейшего старта маркетинговой кампании, сбора подписок потенциальных клиентов и распространения информации про проект. Мы решили использовать время рационально и интегрировали платформу для почтовых рассылок SendGrid, что позволило уже собирать emails пользователей. Этот сервис удобен тем, что предоставляет возможность электронных рекламных кампаний для бизнеса. Также с помощью него можно проводить два вида рассылок — маркетинговые и транзакционные. Приложение предлагает настройку автоматических рассылок по заданным параметрам и присутствует встроенная аналитика в реальном времени, которая демонстрирует результаты рассылок.
Информации для наполнения клиент предоставил очень мало, из-за чего пришлось самостоятельно разрабатывать структуру сайта и контентных блоков. Основной задачей было не перенасыщать страницу, поэтому мы внесли ознакомительную информацию с сервисом, его услугами и ценами на них.
Изначально мы сделали графику более игривой, но спустя некоторое время, когда сайт работал в режиме тестирования, клиент изучил рынок, отклики/отзывы и сообщил о том, что сфера телемедицины по их анализу и видению гораздо более масштабна и серьезна, а их целевая аудитория старше и обширней. Клиент попросил сделать более формальную версию сайта и следовательно мы заменили все иллюстрации на картинки и видео.
Как только был готов прототип проекта, мы начали планировать этапы разработки. Выбрали стек технологий, который будем использовать это был React и NodeJS с PostgreSQL, после чего определились с составом команды и распределили задачи. Решили, что бек команда составит API контракты в Постмане и обе команды будут двигаться по этим контрактам. Это позволило обеим командам двигаться параллельно и не ждать никого, что в свою очередь помогло сделать проект достаточно быстро. В последствии Postman контракты также использовались при дев-тестировании и отладке как бека так и фронта.
После того, как мы нарисовали дизайн для dashboard, мы приступили к разработке и начали верстать другие страницы. Первой стояла задача построить back-end и интегрировать с back-end провайдера — MeMD. Стоит отметить, что клиенту было важно запустить MVP, и как можно быстрее, поэтому мы и использовали MeMD. У него настроено контактирование с сертифицированными врачами 24/7 и она является ключевой системой, которая непосредственно выполняет основную функцию проекта и воплощает его идею. Еще эту платформу очень просто запустить в продукт и она достаточно гибкая.
В dashboard мы включили опцию с регистрацией, которая позволяла переходить в личный кабинет пользователя. После регистрации и успешной записи на прием, на dashboard появляется окно с уведомлением о дате и времени приема.
Мы также придумали две фишки:
- Lifestyle score. Здесь клиент описывает свой образ жизни, проходит опросы, рассказывает про привычки. После он получает суммарный балл, радуется ему или мотивируется на повышение этого показателя.
- Tip of the day. В этой графе обновляется ежедневно информация с советом, который принесет пользу для здоровья каждого человека.
Во время разработки back end мы решили использовать фреймворк express и веб-сервер nginx на платформе Node.js. Если кратко, то express можно охарактеризовать как самый гибкий, простой и быстрый фреймворк для работы с Node.js.
Для разработки front-end мы выбрали React и MobX. React мы использовали, так как он предоставляет язык шаблонов и некоторые callback функции, а также он отлично подходит для командной разработки и делает UI код читабельным и простым. Но учитывая, что только на React не построить полно функционирующее динамическое приложение мы воспользовались еще и MobX. Относительно MobX — это библиотека, механизм работы которой достаточно прост и удобен. В целом его лучше использовать, когда вы хотите, чтобы какие-то объекты ссылались друг на друга.
Нам необходимо было также выбрать платежную систему. Мы остановились на нескольких: Authorize.Net, Stripe и Chargebee. Мы провели анализ и получили такие результаты :
Безопасность.
Исходя из нашего опыта, Authorize не имеет лучшей защиты, которая сводится к процессу интеграции. Он либо плохо настраивается, либо просто лишен безопасности при использовании наших собственных элементов управления вместо стандартных. Для безопасности, мы использовали Jwt токены, с ограниченным временем жизни, которые реализовали с помощью passport.
Документация.
В то время как Authorize имеет плохие примеры кода и описание API, Stripe лучше документирован, не говоря уже о том, что у нас самый последний опыт интеграции Stripe.
Поток развития.
Authorize.NET требует переключения URL-адреса сценария для переключения между средами разработки и разработки, для которых требуется индивидуальная реализация. С другой стороны, с Stripe вам просто нужны ключи для нужной среды.
Что касается Chargebee, то это сертифицированная система биллинга для SaaS и предприятий электронной коммерции, основанных на подписке. Приятным бонусом будет то, что она поддерживает более 30 ведущих мировых интеграторов платежных шлюзов и альтернативные способы оплаты, что и позволяет совершать автоматизированное списание денежных средств.
Посоветовавшись с клиентом и обсудив все “за” и “против” мы отдали предпочтение платформе Chargebee.
Но самым сложным этапом была интеграция систем MeMD и Chargebee. К сожалению в обеих системах не было возможности проверить, есть ли пользователь с данной почтой в их базе. Вся сложность заключалась в том что при регистрации в PixHealth нам надо было зарегистрировать пользователей в Chargebee и после этого в MemD и если мы не могли зарегистрировать пользователя в MemD нам надо было откатить регистрацию в Chargebee. Так же в обеих системах API ограничены по своим возможностям из-за соображений безопасности, что привело к еще одной проблеме которую нам пришлось решать — это синхронизация баз. Так как пользователь может зайти самостоятельно в MeMD и в Chargebee у него появляется возможность изменить что либо в этих сервисах и PixHealth не будет об этом знать. Поэтому раз в месяц мы синхронизируем базы MeMD и Chargebee для того, чтобы быть уверенными, что у всех пользователей актуальные статусы в нашей базе и чтобы избежать коллизий, когда у пользователя изменилась подписка в MeMD или изменились настройки в Chargebee.
Results
В итоге мы полностью разработали с нуля оба продукта: PixHealth и PixRx, за полгода. Кейс по PixRx появится на наших ресурсах в самое ближайшее время. Как уже и было сказано ранее, так как клиент настаивал на быстром MVP, мы постарались найти наиболее гибкое решение и интегрировали платформу MeMD. Это позволило нам использовать их прототип работы и дополнять его в дальнейшем. Также, одним из ключевых этапов работы был выбор платежной системы. Мы достаточно длительное время проводили исследования, выбирали максимально удовлетворяющую наш концепт платежную систему и остановились на Chargebee.
Если вы хотите создать свой проект также быстро и качественно, как PixHealth, мы готовы быть двигателем вашего стартапа. Просто напишите и мы ответим.