Платформа Open edX — это сервис-ориентированная платформа для создания и проведения онлайн-обучения в любом масштабе. Платформа написана на Python и JavaScript и широко использует инфраструктуру Django. На самом высоком уровне платформа состоит из монолита, нескольких независимо развертываемых приложений (IDA) и микроинтерфейсов (MFE) на основе ReactJS.
В этом репозитории находится монолит в центре платформы Open edX. Функционально репозиторий edx-платформы предоставляет две услуги:
Документацию можно найти по адресу https://docs.openedx.org/projects/edx-platform.
Установить и запустить экземпляр Open edX непросто. Мы настоятельно рекомендуем вам использовать поставщика услуг для запуска программного обеспечения. У них есть бесплатные пробные версии, которые облегчают начало работы: https://openedx.org/get-started/
Однако, если у вас есть время и опыт, вы можете самостоятельно управлять производственным экземпляром Open edX. Чтобы помочь вам создать, настроить, обновить и масштабировать свой экземпляр, мы рекомендуем использовать Tutor, поддерживаемый сообществом дистрибутив Open edX на основе Docker.
Дополнительную информацию о том, как начать работу с развертыванием Tutor, можно прочитать на странице Site Ops на сайте docs.openedx.org.
Tutor также имеет режим разработки, который также поможет вам модифицировать, тестировать и расширять платформу edx. Мы рекомендуем этот метод всем разработчикам Open edX.
Также возможно развернуть платформу Open edX непосредственно на хосте Linux. Этот метод менее распространен и в основном недокументирован. Сообщество Open edX сможет предоставить ему лишь ограниченную поддержку.
Запуск «голого железа» рекомендуется только (а) разработчикам, ищущим приключений, и (б) опытным системным администраторам, которые готовы взять сложность настройки и развертывания Open edX в свои руки.
ОС: * Ubuntu 20.04.
Интерпретаторы/Инструменты:
Услуги:
Языковые пакеты:
Внешний интерфейс:
npm clean-install
(производство)npm clean-install --dev
(разработка)Бэкэнд-сборка:
pip install -r requirements/edx/assets.txt
Бэкэнд-приложение:
pip install -r requirements/edx/base.txt
(производство)pip install -r requirements/edx/dev.txt
(разработка) Некоторые пакеты Python имеют системные зависимости. Например, для установки этих пакетов в Debian или Ubuntu сначала потребуется запустить sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
чтобы удовлетворить требованиям пакета mysqlclient
Python.
Создайте две базы данных MySQL и пользователя MySQL с правами на запись для обеих и настройте Django для их использования, обновив настройку DATABASES
.
Затем запустите миграцию:
./manage.py миграция lms ./manage.py lmsmigrate --database=student_module_history ./manage.py перенос cms
Создайте статические ресурсы (более подробную информацию см. в разделе Создание статических ресурсов):
npm run build # или «build-dev»
Загрузите локали и соберите статические ресурсы (можно пропустить для сайтов разработки):
сделать pull_translations ./manage.py lms Collectstatic ./manage.py cms Collectstatic
Настройте единый вход CMS (для разработки):
./manage.py lms менеджер_пользователь studio_worker [email protected] --unusable-password # НЕ ДЕЛАЙТЕ ЭТОГО В ПРОИЗВОДСТВЕ. Это сделает вашу аутентификацию небезопасной. ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type код авторизации --skip-авторизация --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes идентификатор_пользователя --client-id 'studio-sso-id' --client-secret 'студия-со-секрет'
Настройте единый вход CMS (для производства):
Создайте пользователя CMS и приложение OAuth:
./manage.py lms manage_user studio_worker--unusable-password ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type код авторизации --skip-авторизация --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes user_id
Войдите в систему администратора Django (например, http://localhost:18000/admin/oauth2_provider/application/), щелкните приложение, которое вы создали выше ( studio-sso-id
), и скопируйте его «секрет клиента».
В вашем личном файле yaml LMS_CFG или вашем личном модуле настроек Django:
- Установите для
SOCIAL_AUTH_EDX_OAUTH2_KEY
идентификатор клиента (studio-sso-id
).- Установите для
SOCIAL_AUTH_EDX_OAUTH2_SECRET
секрет клиента (который вы скопировали).
Сначала убедитесь, что MySQL, Mongo и Memcached работают.
Запустите LMS:
./manage.py сервер запуска lms 18000
Запустите CMS:
./manage.py сервер запуска cms 18010
Это даст вам практически безголовую платформу Open edX. Большинство интерфейсов были перенесены в «Микро-интерфейсы (MFE)», которые необходимо устанавливать и запускать отдельно. Как минимум, вам потребуется запустить Authentication MFE, Learner Home MFE и Learning MFE, чтобы осмысленно перемещаться по пользовательскому интерфейсу.
Код в этом репозитории лицензируется по версии 3 AGPL, если не указано иное. Подробности смотрите в файле ЛИЦЕНЗИИ.
Посетите сайт Open edX, чтобы узнать больше о мире Open edX. Вы можете найти информацию о хостинге, расширении и участии в программном обеспечении Open edX. Кроме того, на сайте Open edX представлены объявления о продуктах, блог Open edX и другие богатые ресурсы сообщества.
Если у вас возникли проблемы, у нас есть дискуссионные форумы по адресу https://discuss.openedx.org, где вы можете связаться с другими участниками сообщества.
Наши разговоры в реальном времени проходят в Slack. Вы можете запросить приглашение в Slack, а затем присоединиться к нашей команде сообщества Slack.
Дополнительные сведения об этих параметрах см. на странице «Получение справки».
Мы используем Github Issues для отслеживания проблем. Вы можете выполнить поиск ранее сообщенных проблем. Если вам нужно сообщить об ошибке или обсудить новую функцию перед ее реализацией, создайте новую проблему.
Вклады приветствуются! Первым шагом является представление подписанного соглашения с индивидуальным вкладчиком. Дополнительную информацию смотрите в нашем файле CONTRIBUTING – он также содержит рекомендации по поддержанию высокого качества кода, что повысит вероятность того, что ваш вклад будет принят.
Принимаются новые функции. Обсуждение ваших новых идей с сопровождающими перед написанием кода также увеличит шансы на то, что ваша работа будет принята.
Пожалуйста, прочтите Кодекс поведения сообщества для взаимодействия с этим репозиторием.
Пожалуйста, не сообщайте о проблемах безопасности публично. Отправьте электронное письмо по адресу [email protected].
Текущих сопровождающих этого репозитория можно найти на Backstage.