Вопрос или проблема
Я в процессе планирования исследовательского портала и буду признателен за ваши рекомендации по выбору подходящих технологий. Цель портала – реализовать следующие функции:
- Хостинг нескольких исследовательских проектов: Данные каждого исследования должны храниться в отдельных сущностях в этических целях.
- Подисследования: Индивидуальные исследования могут иметь подисследования, с установленными правами доступа на уровне подисследования.
- Протокол исследования и компоненты: Портал должен позволять настраивать протоколы исследований, компоненты и временные точки на
различном уровне. Он должен автоматически включать конкретные формы и поля в зависимости от протокола исследования во время ввода данных. - Сбор данных: Исследовательское исследование будет собирать данные с использованием различных
форм, с правами доступа, применяемыми как на уровне формы, так и на уровне полей. Это включает сбор demographic данных, данных о визитах, данных о диагнозе, сбор биообразцов, согласие на уровне подисследования и поля для
управления прогрессом участия. - Проверки доступа для многосайтовых данных: Данные, собранные на разных сайтах в рамках исследования, должны проходить процесс проверки доступа.
- Гибкое управление правами доступа пользователей: Пользователи могут иметь полные права редактирования для одного исследования, в то время как для другого могут иметь минимальные права редактирования и просмотра, с возможностью настройки прав на уровне формы и полей.
- Интерфейс запросов: Должен быть доступен надежный интерфейс запросов для всех форм в рамках исследования.
- Интерфейс отслеживания участников: Система должна включать SMS и электронные алерты как для исследователей, так и для участников.
Я пробовал Drupal 10 с модулем Groups, и хотя он работает частично, модуль Groups недоступен для последней версии, Drupal 11. Кроме того, Drupal 10 выйдет из эксплуатации через два года. Более того, при наличии всех проверок доступа страницы загружаются слишком медленно, особенно с правами доступа на уровне полей для проверки сайта (с сайтом, хранящимся как поле внутри формы).
Также возможности Drupal Views ограничены для требования интерфейса запросов, особенно для фильтрации и выбора колонок в рамках исследования при проверке доступа. Для этого может потребоваться стороннее приложение.
Я ищу открытое CMS, которое является надежным, гибким и безопасным, конечно!
Ответ или решение
Выбор технологий для разработки исследовательского портала: комплексный подход
В процессе планирования исследовательского портала, целью которого является удобство и безопасность работы с данными различных исследований, необходимо обратить особое внимание на выбор технологий. В этом ответе мы рассмотрим ключевые аспекты, которые должны быть учтены при разработке такого портала, а также предложим рекомендованные технологии.
Основные функции портала
Портал должен обеспечивать следующие функции:
- Хостинг множественных исследований с отдельным хранением данных для каждого исследования.
- Подисследования с управлением правами доступа на уровне субизучений.
- Конфигурирование протоколов и компонентов исследований с автоматическим назначением форм и полей в зависимости от протокола на этапе ввода данных.
- Сбор данных с использованием различных форм с детальным управлением правами доступа.
- Проверки доступа данных для мульти-майдейтных исследований.
- Гибкое управление правами пользователей с возможностью различного уровня доступа к каждому из исследований.
- Интерфейс запросов для обработки всех входящих данных.
- Интерфейс отслеживания участников, включая SMS и email уведомления.
Выбор технологий
1. Системы управления контентом (CMS)
Рекомендуется обратить внимание на следующие CMS, которые удовлетворяют критериям открытости, гибкости и безопасности:
-
WordPress с плагином Advanced Custom Fields (ACF) и User Role Editor: WordPress является мощной и гибкой платформой, позволяющей создавать настраиваемые формы и управлять правами доступа пользователей на высоком уровне.
-
Joomla! с компонентом Fabrikar: Эта CMS позволяет создавать настраиваемые формы и управлять правами доступа. Благодаря расширяемости и большому количеству доступных расширений, можно легко адаптировать решение под конкретные нужды.
-
Ruby on Rails (RoR) с гемами Devise и Pundit: Это гибкая платформа для разработки веб-приложений, которая позволяет построить индивидуальное решение для вашего портала с высокой степенью настройки прав доступа и управления пользователями.
2. База данных
-
PostgreSQL: Выбор реляционной базы данных, такой как PostgreSQL, обеспечит надежное и безопасное хранение данных, а также эффективное управление доступом на уровне данных.
-
MongoDB: Если требуется гибкость структуры данных, можно рассмотреть NoSQL-базу данных, такую как MongoDB. Это может быть полезно, если данные имеют различные форматы и структуры.
3. Интерфейсы и уведомления
-
Twilio API для SMS и Email уведомлений: Использование Twilio позволяет интегрировать SMS и email уведомления для участников и исследователей, что повысит вовлеченность и эффективность коммуникации.
-
GraphQL или RESTful API для интерфейса запросов: Разработка кросс-платформенного API с использованием GraphQL или REST позволяет гибко управлять данными и оптимизировать запросы к базе данных.
4. Управление пользователями
- OAuth 2.0 или JWT (JSON Web Tokens): Эти технологии обеспечат высокую безопасность и управляемость правами доступа пользователей на уровне API.
Заключение
Выбор правильных технологий для разработки исследовательского портала играет ключевую роль в успешности проекта. Учитывая высокие требования к безопасности и гибкости системы, рекомендуется разработать индивидуальное решение на базе CMS, таких как WordPress или Joomla!, с элементами, такими как PostgreSQL для хранения данных и интеграцией уведомлений через Twilio.
Это позволит не только обеспечить необходимую функциональность, но и максимально упростить администрирование и поддержку системы в долгосрочной перспективе.