Основная задача заключалась в создании масштабного веб-приложения с простым администрированием. Чтобы облегчить работу контент-менеджерам при создании новых объектов, мы использовали CKEditor, а также разработали дополнительные плагины для работы с готовыми шаблонами. Среди дополнительных плагинов есть тот, который позволяет контент-менеджерам добавлять видео из другого сервиса в CKEditor.
Поскольку приложение содержит много видеоконтента, наши специалисты использовали сервис Brightcove для присвоения ID каждому видео и сжатия видеофайлов, что ускорило загрузку видеоконтента и упростило процесс размещения файлов.
Мы также работали над блоком локации партнеров. Он помогает быстро найти необходимого врача: пользователь может зайти на страничку, выбрать определенный штат, район и увидеть на карте локации врачей-партнеров, со всей необходимой дополнительной информацией и записаться на прием, или связаться со специалистом для онлайн-консультации. Для этой функции мы использовали Google Maps, а также разработали специальный компонент на React, позволяющий пользователю фильтровать местоположение. Этот же компонент позволяет переключаться между разными языками.
У приложения довольно сложное меню, что могло замедлять загрузку страниц. Поэтому было принято решение настроить загрузку и кэширование меню при первом входе на сайт. Для этого команда использовала HTML-документы с заголовками пунктов меню и необходимыми данными. Приложение также содержит множество других статических элементов. Чтобы не перегружать серверы, используются разные уровни кэширования. Первый уровень выполняется через Symfony, а затем все кэшируется через Varnish.
Чтобы адаптировать интерфейс к основным типам современных устройств, дизайнеры со стороны заказчика создали отдельный дизайн для каждого типа. Во время реализации наша команда использовала сеточную систему верстки, чтобы отображать все в подходящем размере. Чтобы ускорить загрузку на мобильных устройствах, мы разработали специальный модуль для Drupal. Он автоматически создает 3 копии исходного изображения разного качества под определенные устройства и загружает то, что необходимо.
Одной из важнейших задач была адаптация приложения для людей с нарушениями зрения. Команда разработчиков использовала HTML Accessibility, который позволяет пользователям прослушивать контент и перемещаться по нему. Озвучка осуществляется через скринридеры – VoiceOver для macOS и iOS, TalkBack для Android и NV Access для Windows.
На проекте мы следовали методологии Scrum – работали двухнедельными
спринтами. Раз в 2 недели всей командой проводились онлайн митинги для оценки
и распределения задач на следующий спринт. Также, каждое утро наша команда
созванивалась с заказчиком и предоставляла отчеты о работе проделанной за
прошедший день.