{"id":16067979,"url":"https://github.com/zmievsa/autograder","last_synced_at":"2025-03-30T02:30:44.135Z","repository":{"id":42122406,"uuid":"235417011","full_name":"zmievsa/autograder","owner":"zmievsa","description":"Automatic assignment grading for instructor use in programming courses","archived":false,"fork":false,"pushed_at":"2024-02-08T20:10:59.000Z","size":2580,"stargazers_count":36,"open_issues_count":3,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-13T03:02:29.822Z","etag":null,"topics":["c","cpp","education","grading","grading-system","java","python","testcases","utility"],"latest_commit_sha":null,"homepage":"https://zmievsa.github.io/autograder/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zmievsa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-01-21T18:51:36.000Z","updated_at":"2024-04-15T05:46:42.769Z","dependencies_parsed_at":"2022-08-12T07:11:08.897Z","dependency_job_id":"f26ad155-8116-41de-b45b-b65466dfa190","html_url":"https://github.com/zmievsa/autograder","commit_stats":null,"previous_names":["zmievsa/autograder","ovsyanka83/autograder"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmievsa%2Fautograder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmievsa%2Fautograder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmievsa%2Fautograder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmievsa%2Fautograder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zmievsa","download_url":"https://codeload.github.com/zmievsa/autograder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246268862,"owners_count":20750180,"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":["c","cpp","education","grading","grading-system","java","python","testcases","utility"],"created_at":"2024-10-09T06:07:32.241Z","updated_at":"2025-03-30T02:30:42.804Z","avatar_url":"https://github.com/zmievsa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://zmievsa.github.io/autograder/\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/zmievsa/autograder/main/docs/_media/logo_with_text.svg\" alt=\"AutoGrader\"\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\u003cp align=\"center\"\u003e\r\n  \u003cb\u003eA simple, secure, and versatile way to automatically grade programming assignments\u003c/b\u003e\r\n\u003c/p\u003e\r\n\r\n---\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003ca href=\"https://github.com/zmievsa/autograder/actions?query=workflow%3ATests+event%3Apush+branch%3Amain\" target=\"_blank\"\u003e\r\n    \u003cimg src=\"https://github.com/zmievsa/autograder/actions/workflows/test.yaml/badge.svg?branch=main\u0026event=push\" alt=\"Test\"\u003e\r\n\u003c/a\u003e\r\n\u003ca href=\"https://codecov.io/gh/zmievsa/autograder\" target=\"_blank\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/codecov/c/github/zmievsa/autograder?color=%2334D058\" alt=\"Coverage\"\u003e\r\n\u003c/a\u003e\r\n\u003ca href=\"https://pypi.org/project/autograder/\" target=\"_blank\"\u003e\r\n    \u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/autograder?color=%2334D058\u0026label=pypi%20package\" alt=\"Package version\"\u003e\r\n\u003c/a\u003e\r\n\u003ca href=\"https://pypi.org/project/autograder/\" target=\"_blank\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/pypi/pyversions/autograder?color=%2334D058\" alt=\"Supported Python versions\"\u003e\r\n\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n## Features\r\n\r\n* Blazingly fast (can grade hundreads of submissions using dozens of testcases in a few minutes. Seconds if grading python)\r\n* [Easy to grade](https://zmievsa.github.io/autograder/#/?id=usage)\r\n* [Easy-to-write testcases](https://zmievsa.github.io/autograder/#/?id=writing-testcases)  \r\n* Testcase grade can be based on [student's stdout](https://zmievsa.github.io/autograder/#/?id=helper-functions)\r\n* Can grade C, C++, Java, and Python code in regular mode\r\n* Can grade any programming language in stdout-only mode\r\n* A file with testcase grades and details can be generated for each student\r\n* You can customize the total points for the assignment, maximum running time of student's program, file names to be considered for grading, formatters for checking student stdout, and [so much more](https://github.com/zmievsa/autograder/blob/master/autograder/default_config.toml).\r\n* [Anti Cheating capabilities](https://zmievsa.github.io/autograder/#/?id=anti-cheating) that make it nearly impossible for students to cheat\r\n* Grading submissions in multiple programming languages at once\r\n* JSON result output supported if autograder needs to be integrated as a part of a larger utility\r\n* Can check submissions for similarity (plagiarism)\r\n* Can detect and report memory leaks in C/C++ code\r\n\r\n## Installation\r\n\r\n* Run `pip install autograder`\r\n* To grade various programming languages, you'd need to install:\r\n  * `gcc`/`clang` for C/C++ support\r\n  * `Java JDK` for java support\r\n  * `make` for compiled stdout-only testcase support\r\n  * Any interpreter/compiler necessary to run stdout-only testcases. For example, testcases with ruby in their shebang lines will require the ruby interpreter\r\n\r\n### Updates\r\n\r\n`pip install -U --no-cache-dir autograder`\r\n\r\n## Quickstart\r\n\r\n* Run `autograder guide path/to/directory/you'd/like/to/grade`. The guide will create all of the necessary configurations and directories for grading and will explain how to grade.\r\n* Read the [usage](https://zmievsa.github.io/autograder/#/?id=usage) section of the docs\r\n\r\n## Supported Platforms\r\n\r\n* Linux is fully supported\r\n* OS X is fully supported\r\n* Windows is partially supported:\r\n  * Stdout-testcases that require shebang lines are not and cannot be supported\r\n\r\n## Supported Programming Languages\r\n\r\n* Java\r\n* C\r\n* C++\r\n* CPython (3.8-3.11)\r\n* Any programming language if stdout-only grading is used\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzmievsa%2Fautograder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzmievsa%2Fautograder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzmievsa%2Fautograder/lists"}