GithubHelp home page GithubHelp logo

openhpi / codeharbor Goto Github PK

View Code? Open in Web Editor NEW
6.0 11.0 3.0 9.18 MB

Exchange of Programming Exercises acrossdiverse Code Assessment Systems through CodeHarbor

License: BSD 3-Clause "New" or "Revised" License

Ruby 74.13% JavaScript 2.48% HTML 1.14% CoffeeScript 3.16% Shell 0.23% SCSS 3.34% Slim 15.45% CSS 0.07%

codeharbor's People

Contributors

adrian-st avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar florian-str avatar jgraichen avatar kirstin avatar kkoehn avatar leoselig avatar marcelja avatar mathis-z avatar matthiaswiesner avatar melhaya avatar mrserth avatar rteusner avatar snyk-bot avatar tobiasrohloff avatar tstaubitz avatar zuhrasofyan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codeharbor's Issues

admin panel

Admin panel to see all exercises and user and edit/delete them

ACE Editor mode

ACE Editor ist im Moment immer Java. Das sollte auch auf die entsprechende Sprache der Files angepasst werden.

Add "Send to..." dropdown on exercises

On all exercises there should be a dropdown selection containing the complete list of configured account links.
When selecting one account link, the exercise's meta data (no files or anything yet) should be pushed to the corresponding push URL containing the configured account name as well.

Softdelete username as well

The username handling is not quite right yet. After (soft) deleting a user, the user name is not erased and thus shown as taken if another user wants to claim it.

CRUD Account Links per User

Add the ability to connect multiple account links to the own user account.
An account link should associate a CodeHarbour user with an external URL (e.g. CodeOcean) and a unique account identifier (e.g. the email)

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler could not find compatible versions for gem "rubocop":
  In snapshot (Gemfile.lock):
    rubocop (= 0.69.0)

  In Gemfile:
    rubocop (~> 0.69.0)

    rubocop-rails (>= 1.5.0, <= 2.0.0) was resolved to 2.0.0, which depends on
      rubocop (>= 0.70.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Push to external account from exercises

Issue describes OAuth2 (Grant Type: Authorization Code) and is based on https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2

Flow:

  1. Log in to CodeHarbour
  2. Navigate to "Link external account"
  3. Paste URL to OAuth2 provider (e.g. CodeOcean) into field and proceed
  4. User is redirected to OAuth2 URL and permits access
  5. OAuth2 provider redirects user back to CodeHarbour (redirect URI) passing authorization code
  6. CodeHarbour uses authorization code to request access token
    4.-6. After discussion: user just copy/pastes access token from provider (e.g. CodeOcean) to CodeHarbour
  7. Store access token and resource servers' host in database (latter will be used for the URL to push the learning resources to later)

Possible Gems to use:

Tasks:

  • Add dropdown with all account links to exercise views
  • Send empty HTTP POST to the push URL of the selected account link

Check capitalization for email addresses

As a user, I might want to use my email address in any capitalization and it should not make any difference. It should not be possible to use the same address in different capitalizations to register.

CodeHarbor <-> CodeOcean

CodeHarbor:

  • #1 CRUD Account Links per User
  • #8 Add OAuth2 tokens to account links
  • #5 Serialize meta data (title, description) as ProFormA XML
  • #2 Add "Send to..." dropdown on exercises #2
  • #4 Push to external account from exercises
  • #17 Serialize normal files as ProFormA-XML
  • #35 Serialize property "main file" on files vial ProFormA-XML
  • #36 Serialize tests (test files) as ProFormA-XML (requires data model change)
  • #37 Serialize programming language and version (no counter-part in CodeOcean because execution environments might not exist)
  • Serialize model solutions as ProFormA-XML (no counter-part in CodeOcean because it does not know the concept of model solutions)

CodeOcean:

Prevent search from resetting when an exercise is deleted

When I searched for exercises and I delete one of them, I expect to get back the same list of exercises that match my search term as before deleting the exercise (except for the deleted ones).

Currently, I get back the full list.

Add some seed data

e.g. exercise, labels, users, ratings, tests, files, ...

This can be removed when #3 is done.

duplicate Button

Wenn eine Exercise public ist, sollte ein Teacher diese duplizieren und danach bearbeiten können.

Exercises View

Create a view that lists all exercises.
Implement a search function. You should have several options to sort the results.

User list globally visible

As a user without admin rights, I should not be able to browse a list of all users registered on the platform. However, everyone logged in is able to do so at the moment.

Clean up codebase

  • Fix codesmells as suggested by Codeclimate. Set up Codeclimate in general.
  • Remove unnecessary columns in database
  • Remove duplicate entries in locales by adding shared entries. Rework structure.
  • Localize hard coded strings #76
  • Restructure routes
  • Refactor where necessary

Move better_errors gem

According to the comment, the better_errors gem should be moved to the development group of gems:

!!!Important!!! move this to the development group before codeharbor goes really productive!!!Important!!!

Serialize property "main file" on files vial ProFormA-XML

Since ProFormA-XML does not have an appropriate representation for main files, we will use class="template" which is described as an entry point for the student here (typically this will be just one) in conjunction with the optional attribute comment set to "main".

ZIP download broken

When downloading an exercise as ZIP archive, a white page is displayed being served by an HTTP 500 response. I was not able to find any exercise (such as ID 13 or 15) that allowed me to download an archive successfully.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.