Dodona เป็นแพลตฟอร์มการออกกำลังกายออนไลน์สำหรับ การเรียนรู้ที่จะเขียนโค้ด ต้องการสอนนักเรียนถึงวิธีการโปรแกรมในวิธีที่มีความหมายและมีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้ Dodona ทำหน้าที่เป็น ครูร่วมออนไลน์ ที่ออกแบบมาเพื่อให้นักเรียนเข้าถึงการศึกษาที่มีคุณภาพสูงทุกคน การมุ่งเน้นคือการแก้ไขอัตโนมัติและให้ ข้อเสนอแนะที่มีความหมาย เกี่ยวกับโซลูชันที่ส่งจากนักเรียน
ที่เก็บนี้มีซอร์สโค้ดของเว็บแอปพลิเคชัน หากคุณเพียงแค่ต้องการใช้ Dodona โปรดไปที่ https://dodona.be
เอกสารสำหรับผู้ใช้สามารถดูได้ที่ https://docs.dodona.be
Dodona มีอิสระที่จะใช้สำหรับโรงเรียนและเราต้องการให้มันเป็นอย่างนั้น! การรักษาแพลตฟอร์มนี้ขึ้นมาใช้เวลานานเช่นเดียวกับการสนับสนุนโรงเรียนหลายร้อยแห่งและนักเรียนหลายพันคน หากคุณต้องการให้ทุน Dodona คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ https://dodona.be/en/support-us/ หรือติดต่อทางส่งอีเมลถึงเราที่ [email protected]
มีหลายวิธีในการติดต่อเรา:
หากคุณต้องการความช่วยเหลือในการพัฒนาปัญหาที่ติดแท็กด้วยฉลากนักเรียนเป็นจุดเริ่มต้นที่ดี
mysql หรือ mariadbmysql ให้เปลี่ยน sql-mode ในบล็อกการกำหนดค่า mysqld : sql-mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
dodona ด้วยการเข้าถึงฐานข้อมูล dodona และ dodona_test-N คุณจะต้องใช้ฐานข้อมูลทดสอบมากเท่าที่คุณมีเธรด 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 ที่ถูกต้องโดยใช้ RVM (รุ่นที่ใช้ในปัจจุบันสามารถพบได้ที่นี่)node ที่ถูกต้องโดยใช้ nvm และเส้นด้าย (ควรทำโหนดที่ทันสมัย)bundle install และ yarn installrails db:setup (หากมีบางอย่างผิดปกติกับฐานข้อมูลคุณสามารถใช้ rails db:reset เป็น drop, สร้างใหม่และ reseed ฐานข้อมูล) หากข้อผิดพลาด "ไม่สามารถเริ่มต้น Python Judge" เกิดขึ้นให้ใช้ SKIP_PYTHON_JUDGE=true rails db:setupbin/server เพื่อเริ่มเซิร์ฟเวอร์ ข้อมูลเพิ่มเติมเกี่ยวกับวิธีเริ่มการตั้งค่าการพัฒนาสามารถดูได้ที่นี่ Dodona จะมีอยู่ในโดเมนย่อยของ LocalHost: http: //dodona.localhost: 3000ขั้นตอนเหล่านี้ไม่จำเป็นต้องใช้เซิร์ฟเวอร์ แต่คุณต้องใช้ Docker เพื่อประเมินแบบฝึกหัดจริง
dockerdocker pull dodona/dodona-pythonหากคุณต้องการสร้างภาพนักเทียบท่าด้วยตัวเอง:
build.sh สร้างภาพทั้งหมด แต่ด้วยข้อมูลเริ่มต้นจำเป็นต้องใช้เฉพาะ dodona-python คุณสามารถสร้างภาพนี้ด้วย docker build --pull --force-rm -t "dodona-python" -f "dodona-python.dockerfile" . - ขั้นตอนเหล่านี้ไม่จำเป็นต้องเรียกใช้เซิร์ฟเวอร์ แต่จำเป็นต้องมีเพื่อให้การสร้างภาพ
memcachedtmp/caching-dev.txt ต่อไปนี้ในรูทของโครงการ อัญมณีและการพึ่งพาบางส่วน (เช่น memcached) ไม่ทำงานบน windows คุณควรใช้ WSL 2 แทนและเรียกใช้ทุกอย่างภายใน WSL ซึ่งหมายความว่าคุณใช้ WSL สำหรับฐานข้อมูล, memcached, git, docker ฯลฯ
วิธีที่ง่ายที่สุดในการเริ่มต้นเซิร์ฟเวอร์คือคำสั่ง rails s แต่สิ่งนี้จะไม่ประมวลผลคิวการส่งและ JavaScript จะถูกรวบรวมโดย WebPack ในพื้นหลัง (โดยไม่ส่งออกเมื่อมีบางอย่างผิดปกติ)
bin/delayed_job start _jobyarn build:css --watch CSS ของคุณถูกโหลดสดใหม่ (ใช้โดยไม่ต้องใช้ธง --watch เมื่อคุณต้องการสร้างสไตล์ชีทและไม่ต้องการโหลดสด)yarn build:js --watch จาวาสคริปต์ของคุณจะโหลดสดใหม่ (ใช้โดยไม่ต้องใช้ธง --watch เมื่อคุณต้องการสร้าง JavaScript และโหลดสดใหม่ไม่ต้องการ) ในการเริ่มต้นเซิร์ฟเวอร์ Rails, งานล่าช้า, CSS Bundling และ JS Bundling ในเวลาเดียวกันเพียงเรียกใช้ bin/server
สิ่งนี้มีหนึ่ง letdown: debugging with byebug เสีย
Dodona ใช้โดเมนย่อยเพื่อคำอธิบายการออกกำลังกายของ Sandbox (ซึ่งเป็นหน้า HTML โดยพลการและสามารถใช้เพื่อวัตถุประสงค์ที่เป็นอันตรายหากไม่ได้เป็น Sandboxed อย่างเหมาะสม) เราให้บริการแอปพลิเคชั่นหลักในการพัฒนาจาก http: //dodona.localhost: 3000 และคำอธิบายการออกกำลังกายจาก http: //sandbox.localhost: 3000
หากสิ่งนี้ไม่ทำงานนอกกรอบคุณสามารถเพิ่มบรรทัดต่อไปนี้ในไฟล์ /etc/hosts ของคุณ:
127.0.0.1 dodona.localhost
127.0.0.1 sandbox.localhost
หากต้องการผ้าสำลีให้เรียกใช้ rubocop สำหรับ Ruby และ yarn lint สำหรับ JavaScript
เรามีการทดสอบในการทดสอบ JavaScript, Ruby และ System:
yarn testbundle exec rails test:systembundle exec rails test นอกจากนี้ยังมีการตรวจสอบประเภทสำหรับรหัสที่เขียนใน typeScript สิ่งนี้สามารถดำเนินการด้วย yarn typeCheck
เคล็ดลับ
PARALLEL_WORKERS env var เพื่อระบุจำนวนเธรดที่จะใช้TestProf เพื่อทำโปรไฟล์การทดสอบทับทิมbundle exec rails test filename เพื่อเรียกใช้ไฟล์ทดสอบเดียวใช้ bundle exec rails test filename:linenumber