Dodona adalah platform latihan online untuk belajar kode . Ia ingin mengajari siswa cara memprogram dengan cara yang paling bermakna dan efektif. Dodona bertindak sebagai co-guru online , yang dirancang untuk memberikan setiap siswa akses ke pendidikan berkualitas tinggi. Fokusnya adalah pada koreksi otomatis dan memberikan umpan balik yang berarti pada solusi yang diajukan dari siswa.
Repositori ini berisi kode sumber aplikasi web. Jika Anda hanya ingin menggunakan Dodona, silakan kunjungi https://dodona.be.
Dokumentasi untuk pengguna akhir dapat ditemukan di https://docs.dodona.be.
Dodona bebas digunakan untuk sekolah dan kami ingin tetap seperti itu! Menjaga platform ini tetap berjalan membutuhkan banyak waktu, sama seperti mendukung ratusan sekolah dan ribuan siswa. Jika Anda ingin mendanai Dodona, Anda dapat menemukan informasi lebih lanjut tentang https://dodona.be/en/support-us/ atau menghubungi mengirim email kepada kami di [email protected].
Ada beberapa cara untuk menghubungi kami:
Jika Anda ingin membantu pengembangan, masalah yang ditandai dengan label siswa adalah titik awal yang baik.
mysql atau mariadb .mysql , ubah sql-mode di blok konfigurasi mysqld : sql-mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
dodona dengan akses ke database dodona dan dodona_test-N . Anda akan membutuhkan database pengujian sebanyak yang Anda miliki utas CPU. CREATE USER ' dodona '@ ' localhost ' IDENTIFIED BY ' dodona ' ;
GRANT ALL ON dodona. * TO ' dodona ' @ ' localhost ' ;
GRANT ALL ON dodona_test. * TO ' dodona ' @ ' localhost ' ;
GRANT ALL ON ` dodona_test-0 ` . * TO ' dodona ' @ ' localhost ' ;
...
GRANT ALL ON ` dodona_test-N ` . * TO ' dodona ' @ ' localhost ' ;ruby yang benar menggunakan RVM (versi yang saat ini digunakan dapat ditemukan di sini).node yang benar menggunakan nvm dan Benang (versi simpul modern apa pun harus dilakukan).bundle install dan yarn installrails db:setup . (Jika ada yang salah dengan database, Anda dapat menggunakan rails db:reset untuk menjatuhkan, membangun kembali dan mengatur ulang database.) Jika kesalahan "tidak dapat menginisialisasi python judge" muncul, gunakan SKIP_PYTHON_JUDGE=true rails db:setupbin/server untuk memulai server. Informasi lebih lanjut tentang cara memulai pengaturan pengembangan dapat ditemukan di sini. Dodona akan tersedia di subdomain localhost: http: //dodona.localhost: 3000.Langkah -langkah ini tidak diperlukan untuk menjalankan server, tetapi Anda perlu Docker untuk benar -benar mengevaluasi latihan.
docker .docker pull dodona/dodona-pythonJika Anda ingin membangun gambar Docker sendiri:
build.sh membangun semua gambar. Tetapi dengan data awal, hanya dodona-python yang diperlukan. Anda dapat membangun gambar ini dengan docker build --pull --force-rm -t "dodona-python" -f "dodona-python.dockerfile" . . Langkah -langkah ini tidak diperlukan untuk menjalankan server, tetapi diperlukan untuk membiarkan visualisasi memuat.
memcached .tmp/caching-dev.txt di root proyek. Beberapa permata dan dependensi (seperti memcached) tidak berfungsi pada windows. Anda harus menggunakan WSL 2 sebagai gantinya, dan menjalankan semuanya di dalam WSL. Ini berarti Anda menggunakan WSL untuk database, memcached, git, docker, dll.
Cara paling sederhana untuk memulai server adalah dengan perintah rails s Tetapi ini tidak akan memproses antrian pengiriman, dan JavaScript akan disusun oleh Webpack di latar belakang (tanpa output ketika ada yang salah).
bin/delayed_job start .yarn build:css --watch CSS Anda dimuat ulang secara langsung (digunakan tanpa bendera --watch ketika Anda perlu membangun wheets dan reload langsung tidak diinginkan).yarn build:js --watch JavaScript Anda dimuat ulang secara langsung (gunakan tanpa bendera --watch ketika Anda perlu membangun JavaScript dan Live Reload tidak diinginkan). Untuk memulai server Rails, pekerjaan tertunda, bundling CSS dan bundling JS pada saat yang sama, cukup jalankan bin/server .
Ini memiliki satu kekecewaan: debugging dengan byebug rusak.
Dodona menggunakan subdomain untuk deskripsi latihan kotak pasir (yang merupakan halaman HTML sewenang -wenang dan dapat digunakan untuk tujuan jahat jika tidak dengan kotak pasir dengan benar). Kami melayani aplikasi utama dalam pengembangan dari http: //dodona.localhost: 3000 dan deskripsi latihan dari http: //sandbox.localhost: 3000.
Jika ini tidak berhasil di luar kotak, Anda dapat menambahkan baris berikut ke file /etc/hosts Anda:
127.0.0.1 dodona.localhost
127.0.0.1 sandbox.localhost
Untuk meletakkan kode, jalankan rubocop untuk Ruby dan yarn lint untuk JavaScript.
Kami memiliki tes dalam tes JavaScript, Ruby, dan sistem:
yarn testbundle exec rails test:systembundle exec rails test Ada juga tipe cek untuk kode yang ditulis dalam TypeScript. Ini dapat dieksekusi dengan yarn typeCheck .
Tips
PARALLEL_WORKERS quv var untuk menentukan jumlah utas yang akan digunakan.TestProf untuk membuat profil tes Rubybundle exec rails test filename untuk menjalankan file uji tunggal, gunakan bundle exec rails test filename:linenumber untuk menjalankan tes tertentu