{"action":"closed","issue":{"url":"https://api.github.com/repos/troeger/opensubmit/issues/83","labels_url":"https://api.github.com/repos/troeger/opensubmit/issues/83/labels{/name}","comments_url":"https://api.github.com/repos/troeger/opensubmit/issues/83/comments","events_url":"https://api.github.com/repos/troeger/opensubmit/issues/83/events","html_url":"https://github.com/troeger/opensubmit/issues/83","id":116765036,"number":83,"title":"Detect equal uploads","user":{"login":"troeger","id":1308795,"avatar_url":"https://avatars.githubusercontent.com/u/1308795?v=3","gravatar_id":"","url":"https://api.github.com/users/troeger","html_url":"https://github.com/troeger","followers_url":"https://api.github.com/users/troeger/followers","following_url":"https://api.github.com/users/troeger/following{/other_user}","gists_url":"https://api.github.com/users/troeger/gists{/gist_id}","starred_url":"https://api.github.com/users/troeger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troeger/subscriptions","organizations_url":"https://api.github.com/users/troeger/orgs","repos_url":"https://api.github.com/users/troeger/repos","events_url":"https://api.github.com/users/troeger/events{/privacy}","received_events_url":"https://api.github.com/users/troeger/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/troeger/opensubmit/labels/new%20feature","name":"new feature","color":"84b6eb"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/troeger/opensubmit/milestones/12","html_url":"https://github.com/troeger/opensubmit/milestones/v0.5.8%20release","labels_url":"https://api.github.com/repos/troeger/opensubmit/milestones/12/labels","id":1412513,"number":12,"title":"v0.5.8 release","description":"","creator":{"login":"troeger","id":1308795,"avatar_url":"https://avatars.githubusercontent.com/u/1308795?v=3","gravatar_id":"","url":"https://api.github.com/users/troeger","html_url":"https://github.com/troeger","followers_url":"https://api.github.com/users/troeger/followers","following_url":"https://api.github.com/users/troeger/following{/other_user}","gists_url":"https://api.github.com/users/troeger/gists{/gist_id}","starred_url":"https://api.github.com/users/troeger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troeger/subscriptions","organizations_url":"https://api.github.com/users/troeger/orgs","repos_url":"https://api.github.com/users/troeger/repos","events_url":"https://api.github.com/users/troeger/events{/privacy}","received_events_url":"https://api.github.com/users/troeger/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":3,"state":"open","created_at":"2015-11-15T21:33:14Z","updated_at":"2015-12-02T10:54:16Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2015-11-13T13:04:31Z","updated_at":"2015-12-02T10:54:16Z","closed_at":"2015-12-02T10:54:16Z","body":"Detecting completely equal uploads is a small initial step for plagiarism detection. Here some ideas for the implementation:\r\n\r\n  * For each submitted file, an MD5 is computed and stored in the database.\r\n  * An additional administrative command allows to re-compute the checksums for already stored files.\r\n * The edit dialog for submissions links to the submission that has an upload with the same MD5 sum and happened in the same assignment.\r\n\r\nThe tutors can then decide how to react on that. Finding duplicates across assignments does not seem to make any sense.\r\n\r\n"}}