Dodona - это онлайн -платформа для обучения для кода . Он хочет научить студентов, как программировать наиболее значимым и эффективным способом. Dodona выступает как онлайн-учитель , предназначенный для того, чтобы предоставить каждому студенту доступ к высококачественному образованию. Основное внимание уделяется автоматическим исправлениям и предоставлению значимых отзывов о представленных решениях от студентов.
Этот репозиторий содержит исходный код веб -приложения. Если вы просто хотите использовать Dodona, перейдите по адресу https://dodona.be.
Документацию для конечных пользователей можно найти по адресу https://docs.dodona.be.
Dodona может использовать для школ, и мы хотели бы сохранить это таким образом! Поддержание этой платформы занимает много времени, так же, как поддержка сотен школ и тысяч учеников. Если вы хотите финансировать Dodona, вы можете найти больше информации о https://dodona.be/en/support-us/ или связаться с нами, отправив нам электронное письмо по адресу [email protected].
Есть несколько способов связаться с нами:
Если вы хотите помочь с разработкой, проблемы, помеченные для студенческого лейбла, являются хорошей отправной точкой.
mysql или mariadb .mysql измените 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 . Вам понадобится столько тестовых баз данных, сколько у вас есть потоки процессора. 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 , чтобы сбросить, восстановить и зарегистрировать базу данных.) Если ошибка «не может инициализировать судью 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 в корне проекта. Некоторые драгоценные камни и зависимости (такие как Memcached) не работают на Windows. Вместо этого вы должны использовать WSL 2 и запустить все внутри WSL. Это означает, что вы используете WSL для базы данных, memcached, git, docker и т. Д.
Самый простой способ запуска сервера - это команда rails s . Но это не будет обрабатывать очередь отправки, и JavaScript будет составлен WebPack в фоновом режиме (без вывода, когда что -то пойдет не так).
bin/delayed_job start .yarn build:css --watch как ваш CSS перезагружен вживую (используйте без флага --watch , когда вам нужно строить таблицы стилей, а живая перезагрузка не требуется).yarn build:js --watch ваш JavaScript перезагружен в прямом эфире (используйте без флага --watch , когда вам нужно построить JavaScript, а живая перезагрузка не требуется). Чтобы запустить сервер 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
Чтобы прокинуть код, запустите rubocop для Ruby and yarn lint для JavaScript.
У нас есть тесты в тестах JavaScript, Ruby и системных тестов:
yarn testbundle exec rails test:systembundle exec rails test Существует также проверка типа для кода, записанного в TypeScript. Это можно выполнить с помощью yarn typeCheck .
Советы
PARALLEL_WORKERS , чтобы указать количество потоков для использования.TestProf , чтобы профилировать тесты Rubybundle exec rails test filename , чтобы запустить один тестовый файл, используйте bundle exec rails test filename:linenumber