diff --git a/README.md b/README.md index e6bda9f4..20c2ab5b 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ The programming courses offered on openHPI include practical programming exercis 3. CodeOcean includes unit tests to provide feedback for learners and score their code. A unit test is defined as a program that either runs the learner’s code in a pre-defined way and compares the provided result with an expectation or the unit test parses the student’s source code and matches it against an exercise-defined string. While the code of the unit tests are hidden, learners can run the unit tests at any time and get instant feedback whether they passed or failed. If the unit tests fail the result is shown together with an error message defined by the MOOC instructors. On the one hand, this feedback helps people to help themselves and provides learners with a hint of their mistake. On the other hand, the automated scoring using unit tests is required to indicate progress for the learners. In the context of a MOOC with thousands of active learners, a manual review by the instructors is not feasible and peer-review of source code has not been implemented in CodeOcean so far. 4. In CodeOcean, learners can ask questions about their program directly within the platform and in context of their current program. Usually, MOOC platforms provide a forum to discuss questions. While this concept also works great for source code in general outside of a MOOC (cf. [StackOverflow](https://stackoverflow.com)), it is an additional barrier for novices to summarize their problem externally. To understand the problem, contextual information is generally of help for others to provide the current solution. When using a dedicated forum, learners are required to provide as much information as necessary to reproduce the issue which beginners might find difficult to identify. As a result, they might copy too few or too much information. In addition, early iterations of the Java courses showed that learners did not format their source code appropriate in forum posts (but as plain text), making it difficult to read. With _Request for Comments_, CodeOcean provides a built-in feature to ask a question in the context of an exercise, thus lowering the barriers to get help. CodeOcean presents the learner’s source code and error message together with the question to fellow students and allows them to add a comment specifically to one line of code. Hence, the previously described issue is solved with a dedicated forum. -CodeOcean is mainly used in the context of MOOCs (such as those offered on openHPI and mooc.house) and has been used by more than 60,000 users as of June 2020. CodeOcean is a stand-alone tool implementing the [Learning Tools Interoperability (LTI)](http://www.imsglobal.org/activity/learning-tools-interoperability) standard to be used in various learning scenarios. By offering an LTI interface, it is accessible from MOOC providers as well as other providers, such as the HPI Schul-Cloud. CodeOcean itself cannot be used directly by learners or other users than the MOOCs instructors or administrators. +CodeOcean is mainly used in the context of MOOCs (such as those offered on openHPI and mooc.house) and has been used by more than 60,000 users as of June 2020. CodeOcean is a stand-alone tool implementing the [Learning Tools Interoperability (LTI)](https://www.imsglobal.org/activity/learning-tools-interoperability) standard to be used in various learning scenarios. By offering an LTI interface, it is accessible from MOOC providers as well as other providers, such as the HPI Schul-Cloud. CodeOcean itself cannot be used directly by learners or other users than the MOOCs instructors or administrators. ## Development Setup @@ -48,7 +48,7 @@ In order to execute code submissions using the [DockerContainerPool](https://git ## Production Setup -- We recommend using [Capistrano](http://capistranorb.com/) for deployment. +- We recommend using [Capistrano](https://capistranorb.com/) for deployment. - Once deployed, CodeOcean assumes to run exclusively under a (sub)domain. If you want to use it under a custom subpath, you can specify the desired path using an environment variable: `RAILS_RELATIVE_URL_ROOT=/codeocean`. Please ensure to rebuild all assets and restart the server to apply the new path. ## Monitoring diff --git a/app/assets/javascripts/pagedown/markdown.editor.js.erb b/app/assets/javascripts/pagedown/markdown.editor.js.erb index 8330a85c..f9ffebd6 100644 --- a/app/assets/javascripts/pagedown/markdown.editor.js.erb +++ b/app/assets/javascripts/pagedown/markdown.editor.js.erb @@ -29,12 +29,12 @@ // entering links. var linkDialogTitle = "<%= I18n.t('components.markdown_editor.insert_link.dialog_title', default: 'Insert link') %>"; var linkInputLabel = "<%= I18n.t('components.markdown_editor.insert_link.input_label', default: 'Link URL') %>"; - var linkInputPlaceholder = "http://example.com/ \"optional title\""; + var linkInputPlaceholder = "https://example.com/ \"optional title\""; var linkInputHelp = "<%= I18n.t('components.markdown_editor.insert_link.input_help', default: 'Enter URL to point link to and optional title to display when mouse is placed over the link') %>"; var imageDialogTitle = "<%= I18n.t('components.markdown_editor.insert_image.dialog_title', default: 'Insert image') %>"; var imageInputLabel = "<%= I18n.t('components.markdown_editor.insert_image.input_label', default: 'Image URL') %>"; - var imageInputPlaceholder = "http://example.com/images/diagram.jpg \"optional title\""; + var imageInputPlaceholder = "https://example.com/images/diagram.jpg \"optional title\""; var imageInputHelp = "<%= I18n.t('components.markdown_editor.insert_link.input_help', default: 'Enter URL where image is located and optional title to display when mouse is placed over the image') %>"; var defaultHelpHoverTitle = "Markdown Editing Help"; @@ -193,7 +193,7 @@ var regexText; var replacementText; - // chrome bug ... documented at: http://meta.stackoverflow.com/questions/63307/blockquote-glitch-in-editor-in-chrome-6-and-7/65985#65985 + // chrome bug ... documented at: https://meta.stackoverflow.com/questions/63307/blockquote-glitch-in-editor-in-chrome-6-and-7/65985#65985 if (navigator.userAgent.match(/Chrome/)) { "X".match(/()./); } @@ -1793,7 +1793,7 @@ // // Since this is essentially a backwards-moving regex, it's susceptible to // catastrophic backtracking and can cause the browser to hang; - // see e.g. http://meta.stackoverflow.com/questions/9807. + // see e.g. https://meta.stackoverflow.com/questions/9807. // // Hence we replaced this by a simple state machine that just goes through the // lines and checks for a), b), and c). diff --git a/app/assets/javascripts/pagedown/pagedown.js.erb b/app/assets/javascripts/pagedown/pagedown.js.erb index 3581b894..63b8307e 100644 --- a/app/assets/javascripts/pagedown/pagedown.js.erb +++ b/app/assets/javascripts/pagedown/pagedown.js.erb @@ -24,7 +24,7 @@ createPagedownEditor = function( selector, context ) { Markdown.Extra.init(converter); const help = { handler() { - window.open('http://daringfireball.net/projects/markdown/syntax'); + window.open('https://daringfireball.net/projects/markdown/syntax'); return false; }, title: "<%= I18n.t('components.markdown_editor.help', default: 'Markdown Editing Help') %>" diff --git a/app/assets/stylesheets/comments.css.scss b/app/assets/stylesheets/comments.css.scss index 893a8201..a9720165 100644 --- a/app/assets/stylesheets/comments.css.scss +++ b/app/assets/stylesheets/comments.css.scss @@ -1,6 +1,6 @@ // Place all the styles related to the Comments controller here. // They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ +// You can use Sass (SCSS) here: https://sass-lang.com/ .ace_gutter-cell.code-ocean_comment { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wIUDTMn077U+gAAANhJREFUOMvV0jFOQkEURuEPfCFKaChwASQWhsIOaxYgW7Ci0c4VuBBM6GmsWIC2JsbCykJiRSD0GMVHMy+ZTPSBlfHvZu7NyZ1zh79O5Zu7Bi7RRz30TDHC7TbACB1UkSe1Kt5xg2FxuRc1jHFcMm0e+k/xgceCCmc4wtcOz17jCs0YMMDnL9ytcBgDVj8ILZO/jgHXiY9t2cdbLHGBFk4KcklqYcXLdAt3wXQ3kVlBhgM84AKvRTFL6O0gM8MTZuH8ggnmZaP18Ix7nO8qI0t+Wi/4yP2bbAA4rSby6Nz4AwAAAABJRU5ErkJggg=="); diff --git a/app/assets/stylesheets/file_templates.css.scss b/app/assets/stylesheets/file_templates.css.scss index bf8e27e8..19fb0ec0 100644 --- a/app/assets/stylesheets/file_templates.css.scss +++ b/app/assets/stylesheets/file_templates.css.scss @@ -1,3 +1,3 @@ // Place all the styles related to the FileTemplates controller here. // They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ +// You can use Sass (SCSS) here: https://sass-lang.com/ diff --git a/config/schedule.rb b/config/schedule.rb index 26bed0e8..4504df28 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -3,7 +3,7 @@ # Use this file to easily define all of your cron jobs. # # It's helpful, but not entirely necessary to understand cron before proceeding. -# http://en.wikipedia.org/wiki/Cron +# https://en.wikipedia.org/wiki/Cron # Example: # @@ -19,7 +19,7 @@ # runner "AnotherModel.prune_old_records" # end -# Learn more: http://github.com/javan/whenever +# Learn more: https://github.com/javan/whenever set :output, "#{Whenever.path}/log/whenever/whenever_$(date +%Y%m%d%H%M%S).log" set :environment, ENV.fetch('RAILS_ENV', nil) if ENV['RAILS_ENV'] diff --git a/db/seeds/audio_video/index.html b/db/seeds/audio_video/index.html index 7c6a53d1..3b01f539 100644 --- a/db/seeds/audio_video/index.html +++ b/db/seeds/audio_video/index.html @@ -1,7 +1,7 @@
- + diff --git a/db/seeds/geolocation/index.html b/db/seeds/geolocation/index.html index 9638c83b..18ecec4d 100644 --- a/db/seeds/geolocation/index.html +++ b/db/seeds/geolocation/index.html @@ -1,7 +1,7 @@ - + diff --git a/docs/LOCAL_SETUP.md b/docs/LOCAL_SETUP.md index ce83a6eb..db5fdd36 100644 --- a/docs/LOCAL_SETUP.md +++ b/docs/LOCAL_SETUP.md @@ -93,7 +93,7 @@ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-p ```bash curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - -echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list +echo "deb https://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list sudo apt update && sudo apt install postgresql-client postgresql ``` diff --git a/docs/provision_server.sh b/docs/provision_server.sh index 55acce53..d5941908 100644 --- a/docs/provision_server.sh +++ b/docs/provision_server.sh @@ -18,7 +18,7 @@ sudo adduser codeocean # PostgreSQL wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - -sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" +sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" # drop postgres access control # tee /etc/postgresql/$postgres_version/main/pg_hba.conf <