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とYARNを使用して正しいnodeバージョンをインストールします(最新のノードバージョンはすべて実行する必要があります)。bundle installとyarn installを実行しますrails db:setupでデータベースを作成してシードします。 (データベースに何か問題が発生した場合、 rails db:reset SKIP_PYTHON_JUDGE=true rails db:setup使用してデータベースをドロップし、再構築し、再編成できます。bin/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を作成します。 一部の宝石や依存関係(Memcachedなど)はWindowsで動作しません。代わりにWSL 2を使用し、WSL内のすべてを実行する必要があります。これは、データベース、memcached、git、dockerなどにWSLを使用することを意味します。
サーバーを開始する最も簡単な方法はrails sコマンドを使用することです。ただし、これは送信キューを処理することはなく、JavaScriptはバックグラウンドでWebpackによってコンパイルされます(何か問題が発生したときに出力なし)。
bin/delayed_job startコマンドで遅延ジョブを開始する必要があります。yarn build:css --watch Your CSSはライブリロードされます(スタイルシートを構築してライブリロードする必要があるときに--watchフラグなしで使用しません)。yarn build:js --watch Your JavaScriptがライブリロードされます(JavaScriptを構築する必要があるときに--watchフラグなしで使用し、ライブリロードは必要ありません)。 Railsサーバーを起動するには、ジョブの遅延、CSSバンドリング、JSバンドリングを同時に開始するには、単にbin/serverを実行します。
これには1つの失望があります。Byebugでの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 for rubyとyarn lint for javascriptのrubocopを実行します。
JavaScript、Ruby、およびシステムテストでテストがあります。
yarn testを実行しますbundle exec rails test:systemを実行しますbundle exec rails testを実行しますTypeScriptで記述されたコードのタイプチェックもあります。これはyarn typeCheckで実行できます。
ヒント
PARALLEL_WORKERS env varを使用して、使用するスレッドの数を指定します。TestProfを使用して、Rubyテストをプロファイルしますbundle exec rails test filename使用して単一のテストファイルを実行し、 bundle exec rails test filename:linenumberを使用して特定のテストを実行する