Dodona是一個學習編碼的在線鍛煉平台。它想教學生如何以最有意義,最有效的方式進行編程。 Dodona充當在線聯合教師,旨在使每個學生獲得高質量的教育。重點是自動更正,並就學生提交的解決方案提供有意義的反饋。
該存儲庫包含Web應用程序的源代碼。如果您只想使用Dodona,請訪問https://dodona.be。
可以在https://docs.dodona.be上找到最終用戶的文檔。
Dodona可以免費用於學校,我們想保持這種方式!保持這個平台的啟動和運行需要大量時間,就像為數百所學校和成千上萬的學生提供支持。如果您想為Dodona提供資金,可以在https://dodona.be/en/support-us/上找到更多信息,或通過發送電子郵件至[email protected]與我們聯繫。
有幾種與我們聯繫的方法:
如果您想幫助開發,則使用學生標籤標記的問題是一個很好的起點。
mysql或mariadb 。mysql ,請在mysqld配置塊中更改sql-mode : sql-mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
dodona和dodona_test-N數據庫的dodona用戶。您將需要與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版本(可以在此處找到當前使用的版本)。nvm和紗線安裝正確的node版本(任何現代節點版本都應該使用)。bundle install和yarn installrails db:setup創建和播種數據庫。 (如果數據庫出現問題,您可以使用rails db:reset以刪除,重建並重新播放數據庫。)如果錯誤“無法初始化Python裁判”,請使用SKIP_PYTHON_JUDGE=true rails db:setupbin/server以啟動服務器。有關如何啟動開發設置的更多信息,請參見此處。 Dodona將在Localhost的子域中提供:http://dodona.localhost:3000。這些步驟不需要運行服務器,但是您需要Docker才能實際評估練習。
docker 。docker pull dodona/dodona-python如果您想自己構建Docker圖像:
build.sh腳本構建所有圖像。但是有了初始數據,只需要dodona-python 。您可以使用docker build --pull --force-rm -t "dodona-python" -f "dodona-python.dockerfile" . 。 這些步驟不需要運行服務器,而是需要讓可視化加載。
memcached 。tmp/caching-dev.txt 。 某些寶石和依賴項(例如備忘錄)在Windows上不起作用。您應該改用WSL 2,然後在WSL內運行所有內容。這意味著您將WSL用於數據庫,模因,git,docker等。
啟動服務器的最簡單方法是使用rails s命令。但這不會處理提交隊列,並且JavaScript將由WebPack在後台編譯(當出現問題時沒有輸出)。
bin/delayed_job start命令開始延遲作業。yarn build:css --watch您的CSS是現場重新裝載的(當您需要構建樣式表並不需要實時重新加載時,就可以使用--watch標誌使用)。yarn build:js --watch您的JavaScript進行現場重新加載(當您需要構建JavaScript並不需要實時重新加載時,無需--watch標誌即可使用)。要啟動Rails服務器,延遲作業,CSS捆綁和JS捆綁在一起,只需運行bin/server即可。
這有一個令人失望的:與byebug的調試被打破了。
Dodona使用子域來沙箱鍛煉描述(這是任意的HTML頁面,如果沒有正確的沙盒,則可以用於惡意目的)。我們從http://dodona.localhost:3000和從http://sandbox.localhost:3000提供了開發的主要應用程序。
如果此操作未解決,則可以將以下行添加到您的/etc/hosts文件:
127.0.0.1 dodona.localhost
127.0.0.1 sandbox.localhost
要提起代碼,請為Ruby運行rubocop ,並為JavaScript運行yarn lint 。
我們在JavaScript,Ruby和系統測試中進行了測試:
yarn testbundle exec rails test:systembundle exec rails test還有一個類型檢查打字稿中編寫的代碼。這可以使用yarn typeCheck執行。
尖端
PARALLEL_WORKERS env var來指定要使用的線程數。TestProf介紹Ruby測試bundle exec rails test filename來運行單個測試文件,使用bundle exec rails test filename:linenumber運行特定的測試