Dodona는 코드를 배우기 위한 온라인 운동 플랫폼입니다. 학생들에게 가장 의미 있고 효과적인 방법으로 프로그래밍하는 방법을 가르치고 싶어합니다. Dodona는 온라인 공동 교사 역할을하며 모든 학생들이 양질의 교육에 액세스 할 수 있도록 설계되었습니다. 초점은 자동 수정과 학생들의 제출 된 솔루션에 대한 의미있는 피드백 에 중점을 둡니다.
이 저장소에는 웹 응용 프로그램의 소스 코드가 포함되어 있습니다. 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 install 실행하십시오rails db:setup 으로 데이터베이스를 생성하고 시드하십시오. (데이터베이스에 문제가 발생하면 rails db:reset 사용할 수 있습니다. SKIP_PYTHON_JUDGE=true rails db:setup 데이터베이스를 삭제, 재 구축 및 다시 구축하기 위해 재설정 할 수 있습니다.) 오류가 "Python judge를 초기화 할 수 없으면"발생합니다.bin/server 실행하십시오. 개발 설정을 시작하는 방법에 대한 자세한 내용은 여기를 참조하십시오. Dodona는 http : //dodona.localhost : 3000의 Localhost의 하위 도메인에서 구입할 수 있습니다.이 단계는 서버를 실행할 필요는 없지만 실제로 연습을 평가하려면 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는 백그라운드에서 웹 팩에 의해 컴파일됩니다 (무언가 잘못 될 때 출력없이).
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 test 실행하십시오bundle exec rails test:system 실행하십시오bundle exec rails test 실행하십시오 TypeScript로 작성된 코드에 대한 유형 확인도 있습니다. yarn typeCheck 로 실행할 수 있습니다.
팁
PARALLEL_WORKERS env var를 사용하여 사용할 스레드 수를 지정하십시오.TestProf 사용하여 루비 테스트를 프로파일 링하십시오bundle exec rails test filename 사용 단일 테스트 파일을 실행하고 bundle exec rails test filename:linenumber 사용 특정 테스트를 실행하십시오.