{"id":16185567,"url":"https://github.com/patrickhulce/codereview","last_synced_at":"2025-10-09T17:06:52.546Z","repository":{"id":10616705,"uuid":"12836443","full_name":"patrickhulce/codereview","owner":"patrickhulce","description":"Web application to assist with grading homeworks and assessing code style.","archived":false,"fork":false,"pushed_at":"2013-09-27T17:40:02.000Z","size":609,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-26T19:05:37.063Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","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/patrickhulce.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":"2013-09-14T21:33:34.000Z","updated_at":"2013-09-29T21:07:52.000Z","dependencies_parsed_at":"2022-09-01T22:12:51.575Z","dependency_job_id":null,"html_url":"https://github.com/patrickhulce/codereview","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/patrickhulce/codereview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Fcodereview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Fcodereview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Fcodereview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Fcodereview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickhulce","download_url":"https://codeload.github.com/patrickhulce/codereview/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickhulce%2Fcodereview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001890,"owners_count":26083197,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-10T07:14:39.113Z","updated_at":"2025-10-09T17:06:52.514Z","avatar_url":"https://github.com/patrickhulce.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"Code Review for CIS120\n======================\n\nWeb application to assist with grading homeworks and assessing code style.\n\nDependencies\n------------\n\n1.  Python\n2.  flask\n\nInstalling Code Review\n-------------------\n\n    # Install python and flask if you haven't already\n    sudo apt-get install python\n    sudo pip install flask\n    \n    # Download and setup the directories\n    git clone https://github.com/patrickhulce/codereview.git\n    cd codereview\n    mkdir -p data/_projects\n    \n    # Run Code Review\n    python app.py\n\nOpen your browser to localhost:8000 and enjoy!\n\nUsage\n-----\n\n### Overview\n\nCode Review operates on the idea of assignments. An assignment is presented in Code Review by a JSON file that describes the basic settings (people, files, problems, templates, etc) and the comments themselves. \n\n### Workflow\n\nThe basic workflow of Code Review involves the following steps.\n\n1.  Enter your student information under Settings \u003e People\n2.  Enter each problem and its corresponding file under Settings \u003e Files\n3.  (Optional) Enter the issues you expect to see under Settings \u003e Issue Templates\n4.  Copy your students' code into the data folder you created during the installation step in a subfolder bearing the assignment's name. For example, if you're grading an assignment called `lab01` put each student's code into a `codereview/data/lab01/studentid` folder.\n5.  Enter the name of the assignment (make sure this matches the folder name you used in step 4) under Settings.\n6.  Make your comments (see [Making Comments](#making-comments) for details).\n7.  Edit your email template under Settings \u003e Email Templates\n8.  Make your grades for each student under Email.\n\n### Loading/Saving\n\nBecause the assignment contains not only the settings, but the comments themselves. __Code Review automatically saves your assignment to `data/_projects/assignment_name.json` every minute__. You can manually save or load a project. For other ways to import a project see [Importing/Exporting](#importingsaving).\n\n### Importing/Exporting\n\nIn the settings tab, there is a textbox with import and export buttons. Pressing `Export` will populate the textbox with the JSON string of the current value of the assignment, allowing for easy sharing of issue templates, people, and files. Pressing `Import` will parse the text in the textbox and set the value of the people, files, templates, and comments accordingly. This is currently the safest way to load assignments from a previous session.\n\n### Making Comments\n\nAfter you've entered the necessary settings and copied the files into the `data/assignment_name` folder, you're ready to start commenting on the code. Start by opening the `Code` tab, selecting a student's name, and selecting a file. The student's file should appear in the code pane on the left. Now click on a problem to get started. A tabbed interface should appear on the right. The `General` section is where you'll mark the student's overall style in solving the given problem as well as his or her test coverage by using the radio buttons. The `Issues` section is where you'll provide comments on specific errors or style violations that could be improved. To assist in making comments, common issues can be automatically filled in by starting to type the name of the issue template and hitting enter once the name is highlighted. This will automatically populate the description and severity based on the corresponding issue template. After making the necessary comment, be sure to click `Add` to add the comment to the assignment.\n\nSettings\n--------\n\n### People\n\nEach assigment contains a set of people we expect to review. Three attributes need to be known about a person: their id (used for retrieving their code from the `data/assignment_name/studentid` folder), their name (used in the email template), and their email (used for the mailto link when sending out grades).\n\n### Files\n\nEach assignment contains a set of files we expect to review. Each student's files must be located at `data/assignment_name/studentid/filename` in order to be pulled up by Code Review.\n\n### Problems\n\nEach file contains a set of problems we expect to review. Each problem contains a friendly name, which is used for navigation within Code Review and for displaying in student comments, and a signature, which is used to automatically navigate to the relevant code block when reviewing a file. When filling out the signature, it is wise to include the minimum text that is likely to be common to all students' implementations. Currently, any spaces are replaced with RegEx that will match between 0 and 4 spaces, and any use of the `rec` keyword will be replaced with RegEx that optionally matches against it.\n\n### Issue Templates\n\nEach assignment contains a set of issue templates that can be used to automatically fill in the description and severity of code problems that are likely to be common across many students. When actually making comments, autocomplete will match against any word in the name or description.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickhulce%2Fcodereview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickhulce%2Fcodereview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickhulce%2Fcodereview/lists"}