{"id":22198251,"url":"https://github.com/kevinyang372/code-eval","last_synced_at":"2026-04-30T17:31:56.798Z","repository":{"id":40973286,"uuid":"228205687","full_name":"kevinyang372/code-eval","owner":"kevinyang372","description":"Flask based autograder project","archived":false,"fork":false,"pushed_at":"2022-12-08T07:37:21.000Z","size":319,"stargazers_count":1,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T23:36:03.629Z","etag":null,"topics":["autograder","flask"],"latest_commit_sha":null,"homepage":"","language":"Python","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/kevinyang372.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}},"created_at":"2019-12-15T15:22:07.000Z","updated_at":"2022-01-13T15:05:11.000Z","dependencies_parsed_at":"2023-01-24T21:45:45.186Z","dependency_job_id":null,"html_url":"https://github.com/kevinyang372/code-eval","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kevinyang372/code-eval","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinyang372%2Fcode-eval","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinyang372%2Fcode-eval/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinyang372%2Fcode-eval/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinyang372%2Fcode-eval/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinyang372","download_url":"https://codeload.github.com/kevinyang372/code-eval/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinyang372%2Fcode-eval/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32472396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","flask"],"created_at":"2024-12-02T14:29:05.813Z","updated_at":"2026-04-30T17:31:56.783Z","avatar_url":"https://github.com/kevinyang372.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CodeEval\n\n## Build\nThe application could be build with Docker\n\nFirst navigate to the project root directory and build the image:\n\n    $ docker build -t code_eval:latest .\n    \nAfter build completes, we can run the container:\n\n    $ docker run -d -p 5000:5000 code_eval\n\n## Sample Login Credentials\nDefault Admin\n\u003e Email: example_admin_user@gmail.com \u003c/br\u003e\n\u003e Password: 111\n\nDefault User\n\u003e Email: example_user@gmail.com \u003c/br\u003e\n\u003e Password: 111\n\n## Functionality (Student)\n\n### Join Course\nTo join a course, students need to first visit the link `localhost:5000/register/\u003ccourse_invitation\u003e` to gain access for code submissions. \n\n(By default visit `localhost:5000/register/join156` to add CS156.)\n\n### Submit Code\nTo submit a valid code, students need to create an entry function for tester to run (by default the entry function is named 'entry') and return the correct result according to instructions.\n\n(You could refer to [this](https://github.com/kevinyang372/codeEval/blob/master/sample.py) sample file which does a simple add function.)\n\n## Functionality (Professor)\n\n### Submit Code\n\u003c Same as Above \u003e\n\n### Summary\nProfessors can view a summary of student submissions to each course and session.\n\nThe summary is structured as `Index \u003e\u003e Course \u003e\u003e Session \u003e\u003e Student \u003e\u003e Submissions \u003e\u003e Result` .\n\n### Upload Session\nUpload a new session to a specific course.\n\n**Required parameters:**\n* Filename: A file consisting of all test cases.\n\nExample:\n```python\n# import BaseTest is necessary for integration\nfrom base import BaseTest\n\nclass TestCases(BaseTest):\n\n    def __init__(self, func):\n        super().__init__(func)\n        \n        # each key represent a separate question\n        self.parameters = {\n            'add': [(1, 2), (3, 4), (7, 10), (5, 6)],\n            'subtract': [(1, 2), (3, 4), (7, 10), (5, 6)],\n            'multiply': [(1, 2), (3, 4), (7, 10), (5, 6)]\n        }\n        self.answers = {\n            'add': [3, 7, 17, 11],\n            'subtract': [-1, -1, -3, -1],\n            'multiply': [2, 12, 70, 30]\n        }\n```\n* Session Number: Should be a positive decimal (e.g. 1.1).\n* Course: Choose from available courses.\n* Blacklist: Libraries that students should not use in submissions.\n\n### Add Course\nAdd a new course and create a registration link for that course.\n\n### All Settings\nView / Modify / Delete courses and sessions.\n\n## Unit Test\n    $ python3 -m unittest\n\n## Plagiarism Detection\nThe Autograder comes with a source code plagiarism detection module that applies the following algorithms:\n* Exact Match\n* Unifying AST\n* Unifying AST (Ignore Variables)\n* Winnowing\n* Tree Edit Distance (RTED)\n* Comment Edit Distance (Levenshtein)\n\nA CLI tool is included in the repo for experimenting with the above algorithms on different attack cases. To use the tool, navigate to the `plagiarism` \ndirectory and run the following command:\n```\npython3 -m plagiarism.py\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinyang372%2Fcode-eval","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinyang372%2Fcode-eval","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinyang372%2Fcode-eval/lists"}