{"id":17122218,"url":"https://github.com/ashander/smartersite","last_synced_at":"2025-03-24T02:46:47.016Z","repository":{"id":13240756,"uuid":"15925513","full_name":"ashander/smartersite","owner":"ashander","description":"Doing things (for now grading) with files from UC Davis smartsite","archived":false,"fork":false,"pushed_at":"2014-01-31T23:36:17.000Z","size":236,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T08:47:36.771Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-15T05:04:35.000Z","updated_at":"2016-03-29T20:59:26.000Z","dependencies_parsed_at":"2022-08-25T18:20:16.203Z","dependency_job_id":null,"html_url":"https://github.com/ashander/smartersite","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/ashander%2Fsmartersite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashander%2Fsmartersite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashander%2Fsmartersite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashander%2Fsmartersite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashander","download_url":"https://codeload.github.com/ashander/smartersite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245200675,"owners_count":20576673,"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":[],"created_at":"2024-10-14T18:06:48.933Z","updated_at":"2025-03-24T02:46:46.997Z","avatar_url":"https://github.com/ashander.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"smartersite\n===========\n\nDoing things (for now grading) with files from UC Davis smartsite\n\n## grading.py\n\nMost of the action is in grading.py, for information run:\n\n```python\npython grading.py -h \n```\nTo be useful, this program must be run in the root of a directory tree as \nunzipped from a `bulk_download.zip` file as provided by the 'Grade' link \nin a smartsite Assignment.\n\nThe program will attempt to open submissions (.doc or .pdf as of now) and prompt \nthe user for comments through the command line. \n\nYou have an option to edit those comments (if $EDITOR is set in your shell).\n\nIt prompts for a grade (must be \u003c= 5 as of now) and if that grade is provided, \nincludes it in the comments and also the grade to an output file with the \nformat of grades.csv.\n\nIn a given 'session' of grading, any students for which grades aren't provided\nare written into an output file (also with the format of grades.csv) but with no\ngrades.\n\nThe script takes arguments that allow you to grade only students in specified section, \nso long as an appropriate csv file to look up section membership is provided.\nThere are also `R`-based tools to construct such a csv from Excel files downloaded\nfrom smartsite (see 'R scripts' below).\n\n## a workflow\n\n1. download a zip archive from smartsite into `bulk_download.zip`\n2. unpack it, which creates a single directory eg. to `Homework _ Lab 1`\n3. `cd` to that directory\n4. run `grading.py` as below (arguments to grade section 2 only)\n\n```sh\n~/TAwd/Homework _ Lab 1$ python ../grading.py -lu ../currentlut.csv -s 2 grades.csv outgrades.csv 'hw test' jaime notgraded.csv\n# do some grading\n# at some point, be done grading and exit by pressing `q` or `Q` at the appropriate prompt\n```\n\n5. next time, run the same script but with `notgraded.csv` as the input, \n```sh\n~/TAwd/Homework _ Lab 1$ python ../grading.py -lu ../currentlut.csv -s 2 notgraded.csv outgrades2.csv 'hw test' jaime notgraded2.csv\n# do some grading\n# at some point, be done grading and exit by pressing `q` or `Q` at the appropriate prompt\n```\n\n6. assuming you graded the rest of the section's assignments in this session, you have grades spread \nacross two files, `outgrades.csv` and `outgrades2.csv`, use `Rscript stackcsv.R` to combine, but first delete \ngrades.csv, \n```sh\nrm grades.csv\nRscript stackcsv.R outgrades.csv outgrades2.csv grades.csv\nrm outgrades* notgraded.csv #cleanup \n```\n\n7. zip up the entire directory and use 'Upload all' from smartsite to upload it. It's OK that `grades.csv` doesn't\ncontain a grade for every student sub directory. \n\n## R scripts\n\nTwo `.R` scripts are for processing excel files provided by smartsite into\nlookup tables for section membership.\n\nAnother `.R` script is for stacking csvs that are like `grades.csv` provided by smartsite.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashander%2Fsmartersite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashander%2Fsmartersite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashander%2Fsmartersite/lists"}