{"id":15969580,"url":"https://github.com/earwig/kgrader","last_synced_at":"2025-04-04T14:40:58.520Z","repository":{"id":141189381,"uuid":"54236628","full_name":"earwig/kgrader","owner":"earwig","description":"A code autograder for student homework submissions","archived":false,"fork":false,"pushed_at":"2016-04-28T17:49:56.000Z","size":47,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-10T00:24:50.368Z","etag":null,"topics":["autograder","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/earwig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-18T23:10:37.000Z","updated_at":"2021-10-07T17:09:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"e2ee15f6-ea38-448f-a4a9-99080ac40c53","html_url":"https://github.com/earwig/kgrader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fkgrader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fkgrader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fkgrader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fkgrader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/earwig","download_url":"https://codeload.github.com/earwig/kgrader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247198403,"owners_count":20900078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autograder","ruby"],"created_at":"2024-10-07T19:40:32.391Z","updated_at":"2025-04-04T14:40:58.505Z","avatar_url":"https://github.com/earwig.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"kgrader\n=======\n\n__kgrader__ is a code autograder, originally created by the course staff of\n[CS 296-41](https://cs.illinois.edu/courses/profile/CS296) (Systems Programming\nHonors) at the University of Illinois to grade student homework submissions.\n\nIt is written in Ruby.\n\nInstallation\n------------\n\nkgrader was developed using Ruby 2.2, though it should work with any recent\nversion of Ruby.\n\nInstall dependencies with gem:\n\n    gem install nokogiri ruby-progressbar\n\nDownload kgrader over git:\n\n    git clone https://github.com/earwig/kgrader.git kgrader\n    cd kgrader\n\nIf you want to use UIUC-specific assignment specifications (requires special\npermissions, but you have those if you want to grade our assignments, right?):\n\n    git submodule update --init\n\nUsage\n-----\n\nkgrader uses rake as its command-line interface.\n\n### Setup\n\nTo show all known classes, semesters, and assignments:\n\n    rake list\n\nTo load a roster (a newline-delimited list of student identifiers) for the\ncurrent semester of a particular course (e.g. \"cs123\"):\n\n    rake roster cs123 myroster.csv\n\nYou can also specify the semester:\n\n    rake roster cs123 myroster.csv sp16\n\n### Grading\n\nTo grade a particular assignment (e.g., \"mp1\" for \"cs123\"):\n\n    rake grade cs123 mp1\n\nAfter verifying that everything looks good, push the grade reports with:\n\n    rake commit cs123 mp1\n\n### Housekeeping\n\nTo do some basic cleanup (i.e., trash uncommitted grading attempts, or reset\nmessy internal state after a bad run):\n\n    rake clean\n\nTo restore kgrader to its \"factory defaults\" (i.e., everything `clean` does,\nbut also delete checked-out student repos and roster files -- dangerous!):\n\n    rake clobber\n\n### Advanced\n\n`grade` has an extended syntax for different options.\n\nTo specify the semester, instead of the inferred current one:\n\n    rake grade cs123 mp1 semester=sp16\n\nTo set a cutoff date after which commits will be ignored:\n\n    rake grade cs123 mp1 due=\"March 20, 2016 11:59:59 PM CDT\"\n\nTo grade without fetching new student repo changes:\n\n    rake grade cs123 mp1 fetch=no\n\nTo grade specific students only:\n\n    rake grade cs123 mp1 students=ksmith12\n    rake grade cs123 mp1 students=ksmith12,bcooper3,mjones14\n\nNormally, kgrader will only regrade a particular student's assignment if their\nrepo has changed since the last run. To forcibly regrade:\n\n    rake grade cs123 mp1 regrade=yes\n\nYou can enable superscoring as well, which will re-run tests that a student\nfailed in an attempt to see if they can get a higher grade:\n\n    rake grade cs123 mp1 superscore=yes\n\nYou can combine these arguments in any meaningful way. `semester` and\n`students` are also available options for `commit`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearwig%2Fkgrader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fearwig%2Fkgrader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearwig%2Fkgrader/lists"}