La plataforma Open edX es una plataforma orientada a servicios para crear y ofrecer aprendizaje en línea a cualquier escala. La plataforma está escrita en Python y JavaScript y hace un uso extensivo del marco Django. En el nivel más alto, la plataforma se compone de un monolito, algunas aplicaciones implementables de forma independiente (IDA) y microfrontends (MFE) basadas en ReactJS.
Este repositorio alberga el monolito en el centro de la plataforma Open edX. Funcionalmente, el repositorio de la plataforma edx proporciona dos servicios:
La documentación se puede encontrar en https://docs.openedx.org/projects/edx-platform.
Instalar y ejecutar una instancia de Open edX no es sencillo. Le recomendamos encarecidamente que utilice un proveedor de servicios para ejecutar el software por usted. Tienen pruebas gratuitas que facilitan el inicio: https://openedx.org/get-started/
Sin embargo, si tiene el tiempo y la experiencia, entonces es posible autoadministrar una instancia de producción de Open edX. Para ayudarle a crear, personalizar, actualizar y escalar su instancia, le recomendamos utilizar Tutor, la distribución Open edX basada en Docker y respaldada por la comunidad.
Puede leer más sobre cómo poner en marcha una implementación de Tutor en la página de inicio de Site Ops en docs.openedx.org.
Tutor también presenta un modo de desarrollo que también lo ayudará a modificar, probar y ampliar la plataforma edx. Recomendamos este método a todos los desarrolladores de Open edX.
También es posible iniciar una plataforma Open edX directamente en un host Linux. Este método es menos común y en su mayoría no está documentado. La comunidad Open edX solo podrá brindarle soporte limitado.
Ejecutar "bare metal" sólo es recomendable para (a) desarrolladores que buscan una aventura y (b) administradores de sistemas experimentados que estén dispuestos a tomar en sus propias manos la complejidad de la configuración e implementación de Open edX.
Sistema operativo: * Ubuntu 20.04
Intérpretes/Herramientas:
Servicios:
Paquetes de idiomas:
Interfaz:
npm clean-install
(producción)npm clean-install --dev
(desarrollo)Construcción de backend:
pip install -r requirements/edx/assets.txt
Aplicación de fondo:
pip install -r requirements/edx/base.txt
(producción)pip install -r requirements/edx/dev.txt
(desarrollo) Algunos paquetes de Python tienen dependencias del sistema. Por ejemplo, instalar estos paquetes en Debian o Ubuntu requerirá ejecutar primero sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
para satisfacer los requisitos del paquete mysqlclient
Python.
Cree dos bases de datos MySQL y un usuario de MySQL con permisos de escritura para ambas, y configure Django para usarlas actualizando la configuración de DATABASES
.
Luego, ejecuta las migraciones:
./manage.py migrar lms ./manage.py lms migrar --database=student_module_history ./manage.py cms migrar
Cree activos estáticos (para obtener más detalles, consulte Creación de activos estáticos):
npm ejecuta build # o 'build-dev'
Descargue configuraciones regionales y recopile activos estáticos (se puede omitir para sitios de desarrollo):
hacer pull_translations ./manage.py lms recopila estática ./manage.py cms recopila estática
Configure CMS SSO (para desarrollo):
./manage.py lms administrar_usuario estudio_trabajador [email protected] --contraseña-inutilizable # NO HAGA ESTO EN PRODUCCIÓN. Hará que su autenticación sea insegura. ./manage.py lms create_dot_application estudio-sso-id estudio_worker --código de autorización tipo concesión --skip-autorización --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes id_usuario --client-id 'estudio-sso-id' --cliente-secreto 'estudio-sso-secreto'
Configure CMS SSO (para producción):
Cree el usuario CMS y la aplicación OAuth:
./manage.py lms Manage_user studio_worker--contraseña-inutilizable ./manage.py lms create_dot_application estudio-sso-id estudio_worker --código de autorización tipo concesión --skip-autorización --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes id_usuario
Inicie sesión en el administrador de Django (por ejemplo, http://localhost:18000/admin/oauth2_provider/application/), haga clic en la aplicación que creó anteriormente ( studio-sso-id
) y copie su "Secreto de cliente".
En su archivo yaml LMS_CFG privado o en su módulo de configuración privado de Django:
- Establezca
SOCIAL_AUTH_EDX_OAUTH2_KEY
en el ID del cliente (studio-sso-id
).- Establezca
SOCIAL_AUTH_EDX_OAUTH2_SECRET
en el secreto del cliente (que copió).
Primero, asegúrese de que MySQL, Mongo y Memcached estén ejecutándose.
Inicie el LMS:
./manage.py lms servidores de ejecución 18000
Inicie el CMS:
./manage.py cms servidores de ejecución 18010
Esto le brindará una plataforma Open edX en su mayoría sin cabeza. La mayoría de las interfaces se han migrado a "Micro-Frontends (MFE)", que deben instalarse y ejecutarse por separado. Como mínimo, deberá ejecutar Authentication MFE, Learner Home MFE y Learning MFE para poder navegar de manera significativa por la interfaz de usuario.
El código de este repositorio tiene licencia según la versión 3 de AGPL a menos que se indique lo contrario. Consulte el archivo de LICENCIA para obtener más detalles.
Consulte el sitio de Open edX para obtener más información sobre el mundo de Open edX. Puede encontrar información sobre cómo alojar, ampliar y contribuir al software Open edX. Además, el sitio Open edX ofrece anuncios de productos, el blog Open edX y otros valiosos recursos comunitarios.
Si tiene problemas, tenemos foros de discusión en https://discuss.openedx.org donde puede conectarse con otras personas de la comunidad.
Nuestras conversaciones en tiempo real están en Slack. Puedes solicitar una invitación a Slack y luego unirte a nuestro equipo comunitario de Slack.
Para obtener más información sobre estas opciones, consulte la página Obtención de ayuda.
Usamos Github Issues para nuestro rastreador de problemas. Puede buscar problemas informados anteriormente. Si necesita informar un error o desea discutir una nueva característica antes de implementarla, cree un nuevo problema.
¡Las contribuciones son bienvenidas! El primer paso es presentar un acuerdo de colaborador individual firmado. Consulte nuestro archivo CONTRIBUTING para obtener más información; también contiene pautas sobre cómo mantener una alta calidad del código, lo que aumentará las probabilidades de que su contribución sea aceptada.
Se aceptan nuevas funciones. Discutir sus nuevas ideas con los mantenedores antes de escribir el código también aumentará las posibilidades de que su trabajo sea aceptado.
Lea el Código de conducta de la comunidad para interactuar con este repositorio.
No informe problemas de seguridad en público. Envíe un correo electrónico a [email protected].
Los mantenedores actuales de este repositorio se pueden encontrar en Backstage.