Platform Open edX adalah platform berorientasi layanan untuk menulis dan menyampaikan pembelajaran online dalam skala apa pun. Platform ini ditulis dalam Python dan JavaScript dan menggunakan kerangka Django secara ekstensif. Pada tingkat tertinggi, platform ini terdiri dari monolit, beberapa aplikasi yang dapat diterapkan secara independen (IDA), dan mikro-frontend (MFE) berdasarkan ReactJS.
Repositori ini menampung monolit di tengah platform Open edX. Secara fungsional, repositori platform edx menyediakan dua layanan:
Dokumentasi dapat ditemukan di https://docs.openedx.org/projects/edx-platform.
Menginstal dan menjalankan instance Open edX tidaklah mudah. Kami sangat menyarankan Anda menggunakan penyedia layanan untuk menjalankan perangkat lunak untuk Anda. Mereka memiliki uji coba gratis yang memudahkan untuk memulai: https://openedx.org/get-started/
Namun, jika Anda memiliki waktu dan keahlian, Anda dapat mengelola sendiri instance Open edX produksi. Untuk membantu Anda membangun, menyesuaikan, meningkatkan, dan menskalakan instans Anda, kami merekomendasikan penggunaan Tutor, distribusi Open edX berbasis Docker yang didukung komunitas.
Anda dapat membaca selengkapnya tentang memulai dan menjalankan penerapan Tutor di beranda Operasi Situs di docs.openedx.org.
Tutor juga dilengkapi mode pengembangan yang juga akan membantu Anda memodifikasi, menguji, dan memperluas platform edx. Kami merekomendasikan metode ini untuk semua pengembang Open edX.
Dimungkinkan juga untuk menjalankan platform Open edX langsung di host Linux. Metode ini kurang umum dan sebagian besar tidak terdokumentasikan. Komunitas Open edX hanya dapat memberikan dukungan terbatas untuknya.
Menjalankan "bare metal" hanya disarankan bagi (a) pengembang yang mencari petualangan dan (b) administrator sistem berpengalaman yang bersedia menangani sendiri kompleksitas konfigurasi dan penerapan Open edX.
OS: * Ubuntu 20.04
Penerjemah/Alat:
Layanan:
Paket Bahasa:
Bagian depan:
npm clean-install
(produksi)npm clean-install --dev
(pengembangan)Pembuatan ujung belakang:
pip install -r requirements/edx/assets.txt
Aplikasi ujung belakang:
pip install -r requirements/edx/base.txt
(produksi)pip install -r requirements/edx/dev.txt
(pengembangan) Beberapa paket Python memiliki ketergantungan sistem. Misalnya, menginstal paket-paket ini di Debian atau Ubuntu akan memerlukan menjalankan sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
terlebih dahulu untuk memenuhi persyaratan paket Python mysqlclient
.
Buat dua basis data MySQL dan pengguna MySQL dengan izin menulis pada keduanya, dan konfigurasikan Django untuk menggunakannya dengan memperbarui pengaturan DATABASES
.
Kemudian, jalankan migrasi:
./manage.py lms bermigrasi ./manage.py lms bermigrasi --database=student_module_history ./manage.py cms bermigrasi
Membangun aset statis (untuk detail selengkapnya, lihat membangun aset statis):
npm jalankan build # atau, 'build-dev'
Unduh lokal dan kumpulkan aset statis (dapat dilewati untuk situs pengembangan):
membuat pull_translations ./manage.py lms mengumpulkan statis ./manage.py cms mengumpulkanstatis
Menyiapkan CMS SSO (untuk Pengembangan):
./manage.py lms manage_user studio_worker [email protected] --kata sandi yang tidak dapat digunakan # JANGAN LAKUKAN INI DALAM PRODUKSI. Itu akan membuat autentikasi Anda tidak aman. ./manage.py lms create_dot_application studio-sso-id studio_worker --kode otorisasi tipe hibah --lewati-otorisasi --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --cakupan user_id --client-id 'studio-sso-id' --klien-rahasia 'studio-sso-rahasia'
Menyiapkan CMS SSO (untuk Produksi):
Buat pengguna CMS dan aplikasi OAuth:
./manage.py lms manage_user studio_worker--kata sandi yang tidak dapat digunakan ./manage.py lms create_dot_application studio-sso-id studio_worker --kode otorisasi tipe hibah --lewati-otorisasi --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --cakupan user_id
Masuk ke admin Django (mis. http://localhost:18000/admin/oauth2_provider/application/), klik ke dalam aplikasi yang Anda buat di atas ( studio-sso-id
), dan salin "Rahasia klien" -nya.
Dalam berkas yaml LMS_CFG pribadi Anda atau modul pengaturan Django pribadi Anda:
- Setel
SOCIAL_AUTH_EDX_OAUTH2_KEY
ke ID klien (studio-sso-id
).- Setel
SOCIAL_AUTH_EDX_OAUTH2_SECRET
ke rahasia klien (yang Anda salin).
Pertama, pastikan MySQL, Mongo, dan Memcached berjalan.
Mulai LMS:
./manage.py lms runserver 18000
Mulai CMSnya:
./manage.py cms runserver 18010
Ini akan memberi Anda platform Open edX yang sebagian besar tidak memiliki kepala. Sebagian besar frontend telah dimigrasikan ke "Micro-Frontends (MFEs)" yang perlu diinstal dan dijalankan secara terpisah. Minimal, Anda harus menjalankan MFE Autentikasi, MFE Beranda Pelajar, dan MFE Pembelajaran agar dapat menavigasi UI dengan baik.
Kode dalam repositori ini dilisensikan di bawah AGPL versi 3 kecuali dinyatakan lain. Silakan lihat file LISENSI untuk detailnya.
Lihat situs Open edX untuk mempelajari lebih lanjut tentang dunia Open edX. Anda dapat menemukan informasi tentang hosting, perluasan, dan kontribusi pada perangkat lunak Open edX. Selain itu, situs Open edX menyediakan pengumuman produk, blog Open edX, dan sumber daya komunitas kaya lainnya.
Jika Anda mengalami masalah, kami memiliki forum diskusi di https://discuss.openedx.org tempat Anda dapat terhubung dengan orang lain di komunitas.
Percakapan real-time kami ada di Slack. Anda dapat meminta undangan Slack, lalu bergabung dengan tim komunitas Slack kami.
Untuk informasi lebih lanjut tentang pilihan ini, lihat halaman Mendapatkan Bantuan.
Kami menggunakan Masalah Github untuk pelacak masalah kami. Anda dapat mencari masalah yang dilaporkan sebelumnya. Jika Anda perlu melaporkan bug, atau ingin mendiskusikan fitur baru sebelum menerapkannya, buat masalah baru.
Kontribusi dipersilakan! Langkah pertama adalah menyerahkan perjanjian kontributor individu yang ditandatangani. Lihat file CONTRIBUTING kami untuk informasi lebih lanjut – file ini juga berisi pedoman tentang cara menjaga kualitas kode yang tinggi, yang akan membuat kontribusi Anda lebih mungkin diterima.
Fitur baru diterima. Mendiskusikan ide-ide baru Anda dengan pengelola sebelum Anda menulis kode juga akan meningkatkan peluang diterimanya karya Anda.
Silakan baca Kode Etik Komunitas untuk berinteraksi dengan repositori ini.
Harap jangan melaporkan masalah keamanan di depan umum. Silakan kirim email ke [email protected].
Pengelola repositori ini saat ini dapat ditemukan di Backstage.