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运行特定的测试